home *** CD-ROM | disk | FTP | other *** search
-
-
- #include "FRApp.h"
-
-
- void FRApp::KeyDownMainMenu(TEKeyState ulKey)
- {
- UInt32 ulMouseX, ulMouseY;
- UInt32 ulCenterY = m_usScreenHeight / 2;
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- if(ulKey == TE_MOUSE_BUTTON0)
- {
-
- if(ulMouseY >= ulCenterY - 60 && ulMouseY <= ulCenterY - 42)
- m_GameState = CAREERMENU;
- else if(ulMouseY >= ulCenterY - 40 && ulMouseY <= ulCenterY - 22)
- m_GameState = QUICKRACEMENU;
- else if(ulMouseY >= ulCenterY - 20 && ulMouseY <= ulCenterY - 2)
- m_GameState = NETWORKMENU;
- else if(ulMouseY >= ulCenterY && ulMouseY <= ulCenterY + 18)
- m_GameState = OPTIONSMENU;
- else if(ulMouseY >= ulCenterY + 20 && ulMouseY <= ulCenterY + 38)
- m_GameState = CREDITS;
- else if(ulMouseY >= ulCenterY + 40 && ulMouseY <= ulCenterY + 58)
- {
- UnloadBSPFile();
- SaveConfig();
- Exit();
- }
- }
- }
-
- void FRApp::KeyDownOptionsMenu(TEKeyState ulKey)
- {
- UInt32 ulMouseX, ulMouseY;
- UInt32 ulCenterY = m_usScreenHeight / 2;
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- if(ulKey == TE_MOUSE_BUTTON0)
- {
-
- if(ulMouseY >= ulCenterY - 60 && ulMouseY <= ulCenterY - 42)
- m_GameState = VIDEOMENU;
- else if(ulMouseY >= ulCenterY - 40 && ulMouseY <= ulCenterY - 22)
- m_GameState = AUDIOMENU;
- else if(ulMouseY >= ulCenterY - 20 && ulMouseY <= ulCenterY - 2)
- m_GameState = INPUTMENU1;
- else if(ulMouseY >= ulCenterY + 40 && ulMouseY <= ulCenterY + 58)
- m_bPlayIntro = !m_bPlayIntro;
- else if(ulMouseY >= ulCenterY + 60 && ulMouseY <= ulCenterY + 78)
- {
- TEString Language;
- TEString LangFile = "strings.txt";
-
- if(m_Lang == ENGLISH)
- {
- m_Lang = GERMAN;
- Language = "GERMAN";
- }
- else if(m_Lang == GERMAN)
- {
- m_Lang = ENGLISH;
- Language = "ENGLISH";
- }
-
- TETranslator::GetTranslator()->SetLanguage(Language, LangFile);
- }
- else if(ulMouseY >= ulCenterY + 80 && ulMouseY <= ulCenterY + 98)
- m_bShowTacho = !m_bShowTacho;
- else if(ulMouseY >= ulCenterY + 100 && ulMouseY <= ulCenterY + 118)
- m_bCamAnimation = !m_bCamAnimation;
- }
- else if(ulMouseY >= ulCenterY + 20 && ulMouseY <= ulCenterY + 38)
- {
- if(m_PlayerName.GetLength() >= 30 || ulKey == TE_KEY_DELETE)
- m_PlayerName.Set("");
- else if(ulKey == TE_KEY_BACKSPACE)
- {
- Char acTmp[256];
- UInt32 ulTmp = m_PlayerName.GetLength();
-
- if(ulTmp >= 255)
- m_PlayerName.Set("");
- {
- sprintf(acTmp, m_PlayerName.Get());
-
- if(ulTmp != 0) ulTmp--;
-
- acTmp[ulTmp] = '\0';
- m_PlayerName.Set(acTmp);
- }
- }
- else if((ulKey >= TE_KEY_0 && ulKey <= TE_KEY_9) || (ulKey >= TE_KEY_A && ulKey <= TE_KEY_Z) || ulKey == TE_KEY_SPACE)
- {
- Char acTmp[] = {m_pInputDevices->Translate(ulKey), '\0'};
- TEString Tmp = acTmp;
-
- if(m_pInputDevices->IsPressed(TE_KEY_SHIFT))
- Tmp.MakeUpperCase();
- else Tmp.MakeLowerCase();
-
- m_PlayerName = m_PlayerName + Tmp;
- }
- }
- }
-
- void FRApp::KeyDownVideoMenu(TEKeyState ulKey)
- {
- if(ulKey == TE_MOUSE_BUTTON0)
- {
- UInt32 ulMouseX, ulMouseY;
- UInt32 ulCenterY = m_usScreenHeight / 2;
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- if(ulMouseY >= ulCenterY + 40 && ulMouseY <= ulCenterY + 58)
- m_bUseMirror = !m_bUseMirror;
- else if(ulMouseY >= ulCenterY + 20 && ulMouseY <= ulCenterY + 38)
- {
- switch(m_Details){
- case VERYHIGH:
- m_Details = VERYLOW;
- break;
- case HIGH:
- m_Details = VERYHIGH;
- break;
- case MEDIUM:
- m_Details = HIGH;
- break;
- case LOW:
- m_Details = MEDIUM;
- break;
- case VERYLOW:
- m_Details = LOW;
- break;
- };
- }
- else if(ulMouseY >= ulCenterY && ulMouseY <= ulCenterY + 18)
- {
- if(m_usScreenBpp == 0)
- m_usScreenBpp = 16;
- else m_usScreenBpp = 0;
- }
- else if(ulMouseY >= ulCenterY - 20 && ulMouseY <= ulCenterY - 2)
- {
- if(m_usScreenBpp == 32)
- m_usScreenBpp = 16;
- else m_usScreenBpp = 32;
- }
- else if(ulMouseY >= ulCenterY - 40 && ulMouseY <= ulCenterY - 22)
- {
- if(ulMouseX < (UInt32) m_usScreenWidth / 2)
- {
- m_usScreenWidth = 1024;
- m_usScreenHeight = 768;
- }
- else
- {
- m_usScreenWidth = 1280;
- m_usScreenHeight = 1024;
- }
-
- m_pRenderer->SetResolution(m_usScreenWidth, m_usScreenHeight, m_usScreenBpp);
- }
- else if(ulMouseY >= ulCenterY - 60 && ulMouseY <= ulCenterY - 42)
- {
- if(ulMouseX < (UInt32) m_usScreenWidth / 2)
- {
- m_usScreenWidth = 640;
- m_usScreenHeight = 480;
- }
- else
- {
- m_usScreenWidth = 800;
- m_usScreenHeight = 600;
- }
-
- m_pRenderer->SetResolution(m_usScreenWidth, m_usScreenHeight, m_usScreenBpp);
- }
- }
- }
-
- void FRApp::KeyDownAudioMenu(TEKeyState ulKey)
- {
- if(ulKey == TE_MOUSE_BUTTON0)
- {
- UInt32 ulMouseX, ulMouseY;
- UInt32 ulCenterY = m_usScreenHeight / 2;
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- if(ulMouseY >= ulCenterY + 40 && ulMouseY <= ulCenterY + 60)
- {
- if(m_Music == DEFAULT)
- m_Music = FROMCD;
- else if(m_Music == FROMCD)
- m_Music = NONE;
- else m_Music = DEFAULT;
- }
- else if(ulMouseY >= ulCenterY - 50 && ulMouseY <= ulCenterY - 30)
- {
- if(ulMouseX < (UInt32) (m_usScreenWidth / 2 - 50))
- ulMouseX = m_usScreenWidth / 2 - 50;
-
- if(ulMouseX > (UInt32) (m_usScreenWidth / 2 + 50))
- ulMouseX = m_usScreenWidth / 2 + 50;
-
- m_fGeneralVolume = (ulMouseX - m_usScreenWidth / 2 + 50) / 25.0f;
- }
- else if(ulMouseY >= ulCenterY - 10 && ulMouseY <= ulCenterY + 10)
- {
- if(ulMouseX < (UInt32) (m_usScreenWidth / 2 - 50))
- ulMouseX = m_usScreenWidth / 2 - 50;
-
- if(ulMouseX > (UInt32) (m_usScreenWidth / 2 + 50))
- ulMouseX = m_usScreenWidth / 2 + 50;
-
- m_fMusicVolume = (ulMouseX - m_usScreenWidth / 2 + 50) / 12.5f;
- }
- }
- }
-
- void FRApp::KeyDownInputMenu1(TEKeyState ulKey)
- {
- UInt32 ulMouseX, ulMouseY;
- UInt32 ulCenterY = m_usScreenHeight / 2;
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- if(ulKey == TE_MOUSE_BUTTON0)
- {
- if(ulMouseY >= ulCenterY + 40 && ulMouseY <= ulCenterY + 60)
- {
- m_GameState = INPUTMENU2;
- return;
- }
- }
-
- if(!KeyInUse(ulKey))
- {
- if(ulMouseY >= ulCenterY - 80 && ulMouseY <= ulCenterY - 62)
- m_aulKeys[0] = ulKey;
- else if(ulMouseY >= ulCenterY - 60 && ulMouseY <= ulCenterY - 42)
- m_aulKeys[1] = ulKey;
- else if(ulMouseY >= ulCenterY - 40 && ulMouseY <= ulCenterY - 22)
- m_aulKeys[2] = ulKey;
- else if(ulMouseY >= ulCenterY - 20 && ulMouseY <= ulCenterY - 2)
- m_aulKeys[3] = ulKey;
- else if(ulMouseY >= ulCenterY && ulMouseY <= ulCenterY + 18)
- m_aulKeys[4] = ulKey;
- else if(ulMouseY >= ulCenterY + 20 && ulMouseY <= ulCenterY + 38)
- m_aulKeys[5] = ulKey;
- }
- }
-
- void FRApp::KeyDownInputMenu2(TEKeyState ulKey)
- {
- UInt32 ulMouseX, ulMouseY;
- UInt32 ulCenterY = m_usScreenHeight / 2;
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- if(ulKey == TE_MOUSE_BUTTON0)
- {
- if(ulMouseY >= ulCenterY + 40 && ulMouseY <= ulCenterY + 60)
- {
- m_GameState = INPUTMENU3;
- return;
- }
- else if(ulMouseY >= ulCenterY - 80 && ulMouseY <= ulCenterY - 60)
- {
- m_GameState = INPUTMENU1;
- return;
- }
- }
-
- if(!KeyInUse(ulKey))
- {
- if(ulMouseY >= ulCenterY - 60 && ulMouseY <= ulCenterY - 42)
- m_aulKeys[6] = ulKey;
- else if(ulMouseY >= ulCenterY - 40 && ulMouseY <= ulCenterY - 22)
- m_aulKeys[7] = ulKey;
- else if(ulMouseY >= ulCenterY - 20 && ulMouseY <= ulCenterY - 2)
- m_aulKeys[8] = ulKey;
- else if(ulMouseY >= ulCenterY && ulMouseY <= ulCenterY + 18)
- m_aulKeys[9] = ulKey;
- else if(ulMouseY >= ulCenterY + 20 && ulMouseY <= ulCenterY + 38)
- m_aulKeys[10] = ulKey;
- }
- }
-
- void FRApp::KeyDownInputMenu3(TEKeyState ulKey)
- {
- UInt32 ulMouseX, ulMouseY;
- UInt32 ulCenterY = m_usScreenHeight / 2;
-
- if(ulKey == TE_MOUSE_BUTTON0)
- {
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- if(ulMouseY >= ulCenterY - 80 && ulMouseY <= ulCenterY - 60)
- m_GameState = INPUTMENU2;
- else if(ulMouseY >= ulCenterY - 40 && ulMouseY <= ulCenterY - 20)
- m_bUseJoystick = !m_bUseJoystick;
- else if(m_bUseJoystick && ulMouseY >= ulCenterY - 20 && ulMouseY <= ulCenterY)
- {
- if(m_JoystickAccel == YAXIS)
- m_JoystickAccel = ZAXIS;
- else if(m_JoystickAccel == ZAXIS)
- m_JoystickAccel = NOAXIS;
- else if(m_JoystickAccel == NOAXIS)
- m_JoystickAccel = YAXIS;
- }
- else if(m_bUseJoystick && ulMouseY >= ulCenterY + 20 && ulMouseY <= ulCenterY + 40)
- {
- if(ulMouseX < (UInt32) (m_usScreenWidth / 2 - 50))
- ulMouseX = m_usScreenWidth / 2 - 50;
-
- if(ulMouseX > (UInt32) (m_usScreenWidth / 2 + 50))
- ulMouseX = m_usScreenWidth / 2 + 50;
-
- m_fJoystickSensitivity = (ulMouseX - m_usScreenWidth / 2 + 50) / 25.0f;
- }
- }
- }
-
- void FRApp::KeyDownCareerMenu(TEKeyState ulKey)
- {
- UInt32 ulMouseX, ulMouseY;
- UInt32 ulCenterX = m_usScreenWidth / 2;
- UInt32 ulCenterY = m_usScreenHeight / 2;
-
- if(ulKey == TE_MOUSE_BUTTON0)
- {
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- if(ulMouseY >= ulCenterY-10 && ulMouseY <= ulCenterY+10)
- {
- if(ulMouseX < ulCenterX-120)
- m_usDifficulty = 1;
- else if(ulMouseX > ulCenterX+120)
- m_usDifficulty = 3;
- else m_usDifficulty = 2;
- }
- else if(ulMouseY >= ulCenterY+90 && ulMouseY <= ulCenterY+110)
- {
- if(m_pCareer != NULL)
- m_GameState = CAREERRACEMENU;
- }
- else if(ulMouseY >= ulCenterY+150 && ulMouseY <= ulCenterY+170)
- {
- if(ulMouseX <= ulCenterX - 10)
- m_GameState = MAINMENU;
- else if(ulMouseX >= ulCenterX + 10)
- {
- UInt32 ulCount;
- bool abInUse[10];
-
- memset(abInUse, false, sizeof(bool)*10);
-
- m_GameState = CAREERRACEMENU;
-
- SafeDelete(m_pCareer);
- m_pCareer = new FRCareerInfo;
- TEAssert(m_pCareer);
- m_pCareer->aulDriverPlacement[0] = 0;
- m_pCareer->aulDriverPlacement[1] = 1;
- m_pCareer->aulDriverPlacement[2] = 2;
- m_pCareer->aulDriverPlacement[3] = 3;
- m_pCareer->ulCurrRace = 0;
- m_pCareer->usDifficulty = m_usDifficulty;
- memset(m_pCareer->aulDriverScore, 0, sizeof(UInt32)*4);
- m_pCareer->aulOpponents[0] = 25 - TERandM(8) - 8 * (m_usDifficulty - 1);
-
- do m_pCareer->aulOpponents[1] = 25 - TERandM(8) - 8 * (m_usDifficulty - 1);
- while(m_pCareer->aulOpponents[0] == m_pCareer->aulOpponents[1]);
-
- do m_pCareer->aulOpponents[2] = 25 - TERandM(8) - 8 * (m_usDifficulty - 1);
- while(m_pCareer->aulOpponents[0] == m_pCareer->aulOpponents[2] || m_pCareer->aulOpponents[1] == m_pCareer->aulOpponents[2]);
-
- for(ulCount = 0; ulCount < 10; ulCount++)
- {
- m_pCareer->aulTrack[ulCount] = TERandM(NUM_TRACKS)-1;
-
- if(ulCount > 0)
- {
- while(m_pCareer->aulTrack[ulCount] == m_pCareer->aulTrack[ulCount-1])
- m_pCareer->aulTrack[ulCount] = TERandM(NUM_TRACKS)-1;
- }
-
- do m_pCareer->aulRaces[ulCount] = TERandM(10)-1;
- while(abInUse[m_pCareer->aulRaces[ulCount]]);
-
- abInUse[m_pCareer->aulRaces[ulCount]] = true;
- }
- }
- }
- }
- }
-
- void FRApp::KeyDownCareerRaceMenu(TEKeyState ulKey)
- {
- UInt32 ulMouseX, ulMouseY;
- UInt32 ulCenterX = m_usScreenWidth / 2;
- UInt32 ulCenterY = m_usScreenHeight / 2;
-
- if(ulKey == TE_MOUSE_BUTTON0)
- {
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
-
- if(ulMouseY >= ulCenterY+130 && ulMouseY <= ulCenterY+148)
- {
- Int32* plTmp;
-
- if(ulMouseX <= ulCenterX - 165)
- {
- plTmp = (Int32*) &m_CurrCar;
- *plTmp = *plTmp - 1;
-
- if(*plTmp < 0)
- *plTmp = 8;
-
- if(!m_bBonusCarAvailable && *plTmp == 7)
- *plTmp = 6;
- }
- else if(ulMouseX >= ulCenterX + 165)
- {
- plTmp = (Int32*) &m_CurrCar;
- *plTmp = *plTmp + 1;
-
- if(*plTmp > 8)
- *plTmp = 0;
-
- if(!m_bBonusCarAvailable && *plTmp == 7)
- *plTmp = 8;
- }
- }
- else if(ulMouseY >= ulCenterY+190 && ulMouseY <= ulCenterY+210)
- {
- if(ulMouseX <= ulCenterX - 10)
- m_GameState = MAINMENU;
- else if(ulMouseX >= ulCenterX + 10)
- {
- Int32 lCount;
- Char acTmp[32];
- TEString Name;
-
- m_ulNumLapsForCurrRace = m_ulNumLaps;
- m_ulCurrTrack = m_pCareer->aulTrack[m_pCareer->ulCurrRace];
- m_GameState = RACE;
- m_bCareerRace = true;
- FRPowerUp::ms_bHideType = false;
- LoadCurrTrack();
-
- if(m_pBackgroundMusic != NULL)
- {
- m_pBackgroundMusic->Stop();
- SafeDelete(m_pBackgroundMusic);
- }
-
- switch(m_Music){
- case DEFAULT:
- sprintf(acTmp, "music%d.ogg", TERandM(4));
- Name = acTmp;
- m_pBackgroundMusic = TESoundManager::GetSoundManager()->GetSound(Name);
- m_pBackgroundMusic->Play(TESOUND_LOOP, m_fGeneralVolume * m_fMusicVolume);
- break;
- case FROMCD:
- lCount = m_pCDPlayer->GetNumberOfTracks();
-
- if(lCount > 0)
- m_pCDPlayer->Play(TERandM(lCount)-1);
- break;
- };
-
- for(lCount = 0; lCount < 3; lCount++)
- {
- if(ms_aRaces[m_pCareer->aulRaces[m_pCareer->ulCurrRace]].m_bForceCar)
- m_apCars[lCount] = GetCar(ms_aRaces[m_pCareer->aulRaces[m_pCareer->ulCurrRace]].m_ForcedCar, m_aStartPositions[m_pCareer->aulDriverPlacement[lCount]], m_aStartRotations[m_pCareer->aulDriverPlacement[lCount]]);
- else m_apCars[lCount] = GetCar(ms_aOpponents[m_pCareer->aulOpponents[lCount]].m_Car, m_aStartPositions[m_pCareer->aulDriverPlacement[lCount]], m_aStartRotations[m_pCareer->aulDriverPlacement[lCount]]);
-
- m_apCars[lCount]->m_DriverName = ms_aOpponents[m_pCareer->aulOpponents[lCount]].m_Name;
- m_apCars[lCount]->m_bAIUsesHorn = ms_aOpponents[m_pCareer->aulOpponents[lCount]].m_bUsesHorn;
- m_apCars[lCount]->m_fAIEfficiency = ms_aOpponents[m_pCareer->aulOpponents[lCount]].m_fAIEfficiency;
-
- if(m_apCars[lCount]->m_fRotFactor < 120.0f)
- m_apCars[lCount]->m_fRotFactor = 120.0f;
-
- m_pEngine->AddObjectToWorld(m_apCars[lCount]);
- }
-
- m_apCars[3] = m_pCar = GetCar(m_CurrCar, m_aStartPositions[m_pCareer->aulDriverPlacement[3]], m_aStartRotations[m_pCareer->aulDriverPlacement[3]]);
- m_pCar->m_Type = LOCAL;
- m_pCar->m_DriverName = m_PlayerName;
- m_pEngine->AddObjectToWorld(m_pCar);
-
- if(m_pCareer->usDifficulty == 2)
- {
- for(lCount = FIRST_GEAR; lCount < (Int32) m_pCar->m_ulNumGears; lCount++)
- m_pCar->m_aGears[lCount].fRPMChange *= 0.9f;
- }
- else if(m_pCareer->usDifficulty == 3)
- {
- for(lCount = FIRST_GEAR; lCount < (Int32) m_pCar->m_ulNumGears; lCount++)
- {
- m_pCar->m_aGears[lCount].fRPMChange *= 0.8f;
- m_pCar->m_aGears[lCount].fRPMTrans *= 0.9f;
- }
- }
-
- memcpy(m_aulPosition, m_pCareer->aulDriverPlacement, sizeof(UInt32)*4);
-
- TETextureManager::GetTextureManager()->ReleaseUnusedTextures();
- TEModelManager::GetModelManager()->FreeUnusedModels();
- TESoundManager::GetSoundManager()->FreeUnusedSounds();
-
- m_fCamDelta = 0;
- m_ulTachoSpeed = 0;
- m_pEngine->ShowCursor(false);
- m_ulCountdown = m_pTimer->GetTime();
- m_bShowAbortMenu = false;
- }
- }
- }
- }
-
- void FRApp::KeyDownQuickRaceMenu(TEKeyState ulKey)
- {
- Int32* plTmp;
- UInt32 ulMouseX, ulMouseY;
- UInt32 ulCenterX = m_usScreenWidth / 2;
- UInt32 ulCenterY = m_usScreenHeight / 2;
-
- if(ulKey == TE_MOUSE_BUTTON0)
- {
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- if(ulMouseY >= ulCenterY-95 && ulMouseY <= ulCenterY-77)
- {
- if(ulMouseX <= ulCenterX - 165)
- {
- plTmp = (Int32*) &m_CurrGameType;
- *plTmp = *plTmp - 1;
-
- if(*plTmp < 0)
- *plTmp = 4;
-
- if((m_CurrGameType == KNOCKOUT || m_CurrGameType == POWERUPKO) &&
- m_ulNumLaps < 3)
- m_ulNumLaps = 3;
- }
- else if(ulMouseX >= ulCenterX + 165)
- {
- plTmp = (Int32*) &m_CurrGameType;
- *plTmp = *plTmp + 1;
-
- if(*plTmp > 4)
- *plTmp = 0;
-
- if((m_CurrGameType == KNOCKOUT || m_CurrGameType == POWERUPKO) &&
- m_ulNumLaps < 3)
- m_ulNumLaps = 3;
- }
- }
- else if(ulMouseY >= ulCenterY-50 && ulMouseY <= ulCenterY-32)
- {
- if(ulMouseX <= ulCenterX - 165)
- {
- plTmp = (Int32*) &m_CurrCar;
- *plTmp = *plTmp - 1;
-
- if(*plTmp < 0)
- *plTmp = 8;
-
- if(!m_bBonusCarAvailable && *plTmp == 7)
- *plTmp = 6;
- }
- else if(ulMouseX >= ulCenterX + 165)
- {
- plTmp = (Int32*) &m_CurrCar;
- *plTmp = *plTmp + 1;
-
- if(*plTmp > 8)
- *plTmp = 0;
-
- if(!m_bBonusCarAvailable && *plTmp == 7)
- *plTmp = 8;
- }
- }
- else if(ulMouseY >= ulCenterY-5 && ulMouseY <= ulCenterY+13)
- {
- if(ulMouseX <= ulCenterX - 165)
- {
- m_ulNumLaps--;
-
- if(m_ulNumLaps < 1)
- m_ulNumLaps = 30;
-
- if((m_CurrGameType == KNOCKOUT || m_CurrGameType == POWERUPKO) &&
- m_ulNumLaps < 3)
- m_ulNumLaps = 30;
- }
- else if(ulMouseX >= ulCenterX + 165)
- {
- m_ulNumLaps++;
-
- if(m_ulNumLaps > 30)
- m_ulNumLaps = 1;
-
- if((m_CurrGameType == KNOCKOUT || m_CurrGameType == POWERUPKO) &&
- m_ulNumLaps < 3)
- m_ulNumLaps = 3;
- }
- }
- else if(ulMouseY >= ulCenterY+40 && ulMouseY <= ulCenterY+58)
- {
- if(ulMouseX <= ulCenterX - 165)
- {
- if(m_ulCurrTrack > 0)
- m_ulCurrTrack--;
- else m_ulCurrTrack = NUM_TRACKS - 1;
- }
- else if(ulMouseX >= ulCenterX + 165)
- {
- m_ulCurrTrack++;
-
- if(m_ulCurrTrack >= NUM_TRACKS)
- m_ulCurrTrack = 0;
- }
- }
- else if(ulMouseY >= ulCenterY+180 && ulMouseY <= ulCenterY+200)
- {
- if(ulMouseX <= ulCenterX - 10)
- m_GameState = MAINMENU;
- else if(ulMouseX >= ulCenterX + 10)
- {
- m_ulNumLapsForCurrRace = m_ulNumLaps;
- m_GameState = RACE;
- FRPowerUp::ms_bHideType = false;
- m_bCareerRace = false;
- LoadCurrTrack();
- StartRace();
- }
- }
- }
- }
-
- void FRApp::KeyDownNetworkMenu(TEKeyState ulKey)
- {
- UInt32 ulMouseX, ulMouseY;
- UInt32 ulCenterX = m_usScreenWidth / 2;
- UInt32 ulCenterY = m_usScreenHeight / 2;
-
- if(ulKey == TE_MOUSE_BUTTON0)
- {
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- if(ulMouseY >= ulCenterY+180 && ulMouseY <= ulCenterY+200)
- m_GameState = MAINMENU;
- else if(ulMouseY >= ulCenterY-40 && ulMouseY <= ulCenterY-20)
- m_GameState = SERVERMENU;
- else if(ulMouseY >= ulCenterY+40 && ulMouseY <= ulCenterY+60)
- m_GameState = CLIENTMENU;
- }
- }
-
- void FRApp::KeyDownServerMenu(TEKeyState ulKey)
- {
- Int32* plTmp;
- UInt32 ulMouseX, ulMouseY;
- UInt32 ulCenterX = m_usScreenWidth / 2;
- UInt32 ulCenterY = m_usScreenHeight / 2;
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- if(ulKey == TE_MOUSE_BUTTON0)
- {
- if(ulMouseY >= ulCenterY-95 && ulMouseY <= ulCenterY-77)
- {
- if(ulMouseX <= ulCenterX - 165)
- {
- plTmp = (Int32*) &m_CurrGameType;
- *plTmp = *plTmp - 1;
-
- if(*plTmp < 0)
- *plTmp = 4;
-
- if((m_CurrGameType == KNOCKOUT || m_CurrGameType == POWERUPKO) &&
- m_ulNumLaps < 3)
- m_ulNumLaps = 3;
- }
- else if(ulMouseX >= ulCenterX + 165)
- {
- plTmp = (Int32*) &m_CurrGameType;
- *plTmp = *plTmp + 1;
-
- if(*plTmp > 4)
- *plTmp = 0;
-
- if((m_CurrGameType == KNOCKOUT || m_CurrGameType == POWERUPKO) &&
- m_ulNumLaps < 3)
- m_ulNumLaps = 3;
- }
- }
- else if(ulMouseY >= ulCenterY-50 && ulMouseY <= ulCenterY-32)
- {
- if(ulMouseX <= ulCenterX - 165)
- {
- plTmp = (Int32*) &m_CurrCar;
- *plTmp = *plTmp - 1;
-
- if(*plTmp < 0)
- *plTmp = 8;
-
- if(!m_bBonusCarAvailable && *plTmp == 7)
- *plTmp = 6;
- }
- else if(ulMouseX >= ulCenterX + 165)
- {
- plTmp = (Int32*) &m_CurrCar;
- *plTmp = *plTmp + 1;
-
- if(*plTmp > 8)
- *plTmp = 0;
-
- if(!m_bBonusCarAvailable && *plTmp == 7)
- *plTmp = 8;
- }
- }
- else if(ulMouseY >= ulCenterY-5 && ulMouseY <= ulCenterY+13)
- {
- if(ulMouseX <= ulCenterX - 165)
- {
- m_ulNumLaps--;
-
- if(m_ulNumLaps < 1)
- m_ulNumLaps = 30;
-
- if((m_CurrGameType == KNOCKOUT || m_CurrGameType == POWERUPKO) &&
- m_ulNumLaps < 3)
- m_ulNumLaps = 30;
- }
- else if(ulMouseX >= ulCenterX + 165)
- {
- m_ulNumLaps++;
-
- if(m_ulNumLaps > 30)
- m_ulNumLaps = 1;
-
- if((m_CurrGameType == KNOCKOUT || m_CurrGameType == POWERUPKO) &&
- m_ulNumLaps < 3)
- m_ulNumLaps = 3;
- }
- }
- else if(ulMouseY >= ulCenterY+40 && ulMouseY <= ulCenterY+58)
- {
- if(ulMouseX <= ulCenterX - 165)
- {
- if(m_ulCurrTrack > 0)
- m_ulCurrTrack--;
- else m_ulCurrTrack = NUM_TRACKS - 1;
- }
- else if(ulMouseX >= ulCenterX + 165)
- {
- m_ulCurrTrack++;
-
- if(m_ulCurrTrack >= NUM_TRACKS)
- m_ulCurrTrack = 0;
- }
- }
- else if(ulMouseY >= ulCenterY+180 && ulMouseY <= ulCenterY+200)
- {
- if(ulMouseX <= ulCenterX - 10)
- m_GameState = MAINMENU;
- else if(ulMouseX >= ulCenterX + 10)
- {
- Char acTmp1[32], acTmp2[32];
- TEGameID GameID;
-
- sprintf(GameID.acID, "FR 1.00");
-
- m_ulNumLapsForCurrRace = m_ulNumLaps;
- m_GameState = WAITINGFORCLIENTS;
-
- m_ulNumClients = 0;
- m_apClients[0] = m_apClients[1] = m_apClients[2] = NULL;
- m_abClientReady[0] = m_abClientReady[1] = m_abClientReady[2] = false;
- m_aClientCars[0] = m_aClientCars[1] = m_aClientCars[2] = ACLASS;
-
- sprintf(acTmp1, m_PlayerName.Get());
- sprintf(acTmp2, m_ServerPassword.Get());
-
- m_pNetworkManager->SetGameID(GameID);
- m_pNetworkManager->SetNetPort(m_usNetPort);
- m_pNetworkManager->StartServer(acTmp1, 3, acTmp2);
-
- TENetworkManager::ms_bRefuseConnection = false;
-
- FRPowerUp::ms_bHideType = true;
-
- LoadCurrTrack();
- }
- }
- }
- else if(ulMouseY >= ulCenterY+120 && ulMouseY <= ulCenterY+140)
- {
- if(ulKey == TE_KEY_DELETE)
- m_ServerPassword.Set("");
- else if(ulKey == TE_KEY_BACKSPACE)
- {
- Char acTmp[256];
- UInt32 ulTmp = m_ServerPassword.GetLength();
-
- if(ulTmp >= 255)
- m_ServerPassword.Set("");
- {
- sprintf(acTmp, m_ServerPassword.Get());
-
- if(ulTmp != 0) ulTmp--;
-
- acTmp[ulTmp] = '\0';
- m_ServerPassword.Set(acTmp);
- }
- }
- else if((ulKey >= TE_KEY_0 && ulKey <= TE_KEY_9) || (ulKey >= TE_KEY_A && ulKey <= TE_KEY_Z))
- {
- Char acTmp[] = {m_pInputDevices->Translate(ulKey), '\0'};
- TEString Tmp = acTmp;
-
- if(m_pInputDevices->IsPressed(TE_KEY_SHIFT))
- Tmp.MakeUpperCase();
- else Tmp.MakeLowerCase();
-
- m_ServerPassword = m_ServerPassword + Tmp;
- }
- }
- else if(ulMouseY >= ulCenterY+90 && ulMouseY <= ulCenterY+110)
- {
- if(ulKey == TE_KEY_DELETE)
- m_usNetPort = 0;
- else if(ulKey == TE_KEY_BACKSPACE)
- m_usNetPort = m_usNetPort / 10;
- else if((ulKey >= TE_KEY_0 && ulKey <= TE_KEY_9))
- m_usNetPort = m_usNetPort * 10 + (UInt16) ulKey;
-
- if(m_usNetPort > 9999)
- m_usNetPort = 0;
- }
- }
-
- void FRApp::KeyDownClientMenu(TEKeyState ulKey)
- {
- Int32* plTmp;
- UInt32 ulMouseX, ulMouseY;
- UInt32 ulCenterX = m_usScreenWidth / 2;
- UInt32 ulCenterY = m_usScreenHeight / 2;
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- if(ulKey == TE_MOUSE_BUTTON0)
- {
- if(ulMouseY >= ulCenterY-40 && ulMouseY <= ulCenterY-22)
- {
- if(ulMouseX <= ulCenterX - 165)
- {
- plTmp = (Int32*) &m_CurrCar;
- *plTmp = *plTmp - 1;
-
- if(*plTmp < 0)
- *plTmp = 8;
-
- if(!m_bBonusCarAvailable && *plTmp == 7)
- *plTmp = 6;
- }
- else if(ulMouseX >= ulCenterX + 165)
- {
- plTmp = (Int32*) &m_CurrCar;
- *plTmp = *plTmp + 1;
-
- if(*plTmp > 8)
- *plTmp = 0;
-
- if(!m_bBonusCarAvailable && *plTmp == 7)
- *plTmp = 8;
- }
- }
- else if(ulMouseY >= ulCenterY+160 && ulMouseY <= ulCenterY+180)
- {
- if(ulMouseX <= ulCenterX - 10)
- m_GameState = MAINMENU;
- else if(ulMouseX >= ulCenterX + 10)
- {
- Char acTmp1[32], acTmp2[32];
- TEGameID GameID;
- TEString Tmp = TETranslator::GetTranslator()->Translate("Connecting...");
-
- m_pRenderer->SetAmbient(255,255,255,255);
- m_pRenderer->SetTexture(m_pMenuBackground);
- m_pRenderer->DrawRectanglef(0.0f, 0.0f, 1.0f, 1.0f);
- m_pRenderer->SetAmbient(0,0,200,255);
- m_pRenderer->DrawText(m_usScreenWidth / 2 - (UInt32) (Tmp.GetLength() * 6.8f), m_usScreenHeight / 2 - 8, 16, Tmp);
- m_pRenderer->DisplayBackBuffer();
-
- sprintf(GameID.acID, "FR 1.00");
-
- m_bConnectedToServer = false;
-
- sprintf(acTmp1, m_PlayerName.Get());
- sprintf(acTmp2, m_ServerPassword.Get());
-
- m_pNetworkManager->SetGameID(GameID);
- sprintf(acTmp1, m_PlayerName.Get());
- sprintf(acTmp2, m_ServerPassword.Get());
-
- m_pNetworkManager->SetNetPort(m_usNetPort);
-
- if(m_pNetworkManager->StartClient(m_IP, acTmp1, acTmp2))
- m_GameState = WAITINGFORSERVER;
-
- FRPowerUp::ms_bHideType = true;
- }
- }
- }
- else if(ulMouseY >= ulCenterY+100 && ulMouseY <= ulCenterY+118)
- {
- if(ulKey == TE_KEY_DELETE)
- m_ServerPassword.Set("");
- else if(ulKey == TE_KEY_BACKSPACE)
- {
- Char acTmp[256];
- UInt32 ulTmp = m_ServerPassword.GetLength();
-
- if(ulTmp >= 255)
- m_ServerPassword.Set("");
- {
- sprintf(acTmp, m_ServerPassword.Get());
-
- if(ulTmp != 0) ulTmp--;
-
- acTmp[ulTmp] = '\0';
- m_ServerPassword.Set(acTmp);
- }
- }
- else if((ulKey >= TE_KEY_0 && ulKey <= TE_KEY_9) || (ulKey >= TE_KEY_A && ulKey <= TE_KEY_Z))
- {
- Char acTmp[] = {m_pInputDevices->Translate(ulKey), '\0'};
- TEString Tmp = acTmp;
-
- if(m_pInputDevices->IsPressed(TE_KEY_SHIFT))
- Tmp.MakeUpperCase();
- else Tmp.MakeLowerCase();
-
- m_ServerPassword = m_ServerPassword + Tmp;
- }
- }
- else if(ulMouseY >= ulCenterY+70 && ulMouseY <= ulCenterY+88)
- {
- if(ulKey == TE_KEY_DELETE)
- m_usNetPort = 0;
- else if(ulKey == TE_KEY_BACKSPACE)
- m_usNetPort = m_usNetPort / 10;
- else if((ulKey >= TE_KEY_0 && ulKey <= TE_KEY_9))
- m_usNetPort = m_usNetPort * 10 + (UInt16) ulKey;
-
- if(m_usNetPort > 9999)
- m_usNetPort = 0;
- }
- else if(ulMouseY >= ulCenterY+40 && ulMouseY <= ulCenterY+58)
- {
- UInt16 usCenterX = m_usScreenWidth / 2;
-
- if(ulMouseX >= (UInt32) usCenterX && ulMouseX <= (UInt32) usCenterX + 39)
- {
- UInt16 usTmp = m_IP.aucAddress[0];
-
- if(ulKey == TE_KEY_DELETE)
- usTmp = 0;
- else if(ulKey == TE_KEY_BACKSPACE)
- usTmp = usTmp / 10;
- else if((ulKey >= TE_KEY_0 && ulKey <= TE_KEY_9))
- usTmp = usTmp * 10 + (UInt16) ulKey;
-
- if(usTmp > 255)
- usTmp = 0;
-
- m_IP.aucAddress[0] = (UChar) usTmp;
- }
- else if(ulMouseX >= (UInt32) usCenterX+78 && ulMouseX <= (UInt32) usCenterX + 117)
- {
- UInt16 usTmp = m_IP.aucAddress[1];
-
- if(ulKey == TE_KEY_DELETE)
- usTmp = 0;
- else if(ulKey == TE_KEY_BACKSPACE)
- usTmp = usTmp / 10;
- else if((ulKey >= TE_KEY_0 && ulKey <= TE_KEY_9))
- usTmp = usTmp * 10 + (UInt16) ulKey;
-
- if(usTmp > 255)
- usTmp = 0;
-
- m_IP.aucAddress[1] = (UChar) usTmp;
- }
- else if(ulMouseX >= (UInt32) usCenterX+156 && ulMouseX <= (UInt32) usCenterX + 195)
- {
- UInt16 usTmp = m_IP.aucAddress[2];
-
- if(ulKey == TE_KEY_DELETE)
- usTmp = 0;
- else if(ulKey == TE_KEY_BACKSPACE)
- usTmp = usTmp / 10;
- else if((ulKey >= TE_KEY_0 && ulKey <= TE_KEY_9))
- usTmp = usTmp * 10 + (UInt16) ulKey;
-
- if(usTmp > 255)
- usTmp = 0;
-
- m_IP.aucAddress[2] = (UChar) usTmp;
- }
- else if(ulMouseX >= (UInt32) usCenterX+234 && ulMouseX <= (UInt32) usCenterX + 273)
- {
- UInt16 usTmp = m_IP.aucAddress[3];
-
- if(ulKey == TE_KEY_DELETE)
- usTmp = 0;
- else if(ulKey == TE_KEY_BACKSPACE)
- usTmp = usTmp / 10;
- else if((ulKey >= TE_KEY_0 && ulKey <= TE_KEY_9))
- usTmp = usTmp * 10 + (UInt16) ulKey;
-
- if(usTmp > 255)
- usTmp = 0;
-
- m_IP.aucAddress[3] = (UChar) usTmp;
- }
- }
- }
-
- void FRApp::KeyDownInGameMenuServer(TEKeyState ulKey)
- {
- Int32* plTmp;
- UInt32 ulMouseX, ulMouseY;
- UInt32 ulCenterX = m_usScreenWidth / 2;
- UInt32 ulCenterY = m_usScreenHeight / 2;
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- if(ulKey == TE_MOUSE_BUTTON0)
- {
- if(ulMouseY >= ulCenterY-75 && ulMouseY <= ulCenterY-57)
- {
- if(ulMouseX <= ulCenterX - 165)
- {
- plTmp = (Int32*) &m_CurrGameType;
- *plTmp = *plTmp - 1;
-
- if(*plTmp < 0)
- *plTmp = 4;
-
- if((m_CurrGameType == KNOCKOUT || m_CurrGameType == POWERUPKO) &&
- m_ulNumLaps < 3)
- m_ulNumLaps = 3;
- }
- else if(ulMouseX >= ulCenterX + 165)
- {
- plTmp = (Int32*) &m_CurrGameType;
- *plTmp = *plTmp + 1;
-
- if(*plTmp > 4)
- *plTmp = 0;
-
- if((m_CurrGameType == KNOCKOUT || m_CurrGameType == POWERUPKO) &&
- m_ulNumLaps < 3)
- m_ulNumLaps = 3;
- }
- }
- else if(ulMouseY >= ulCenterY-30 && ulMouseY <= ulCenterY-12)
- {
- if(ulMouseX <= ulCenterX - 165)
- {
- plTmp = (Int32*) &m_CurrCar;
- *plTmp = *plTmp - 1;
-
- if(*plTmp < 0)
- *plTmp = 8;
-
- if(!m_bBonusCarAvailable && *plTmp == 7)
- *plTmp = 6;
- }
- else if(ulMouseX >= ulCenterX + 165)
- {
- plTmp = (Int32*) &m_CurrCar;
- *plTmp = *plTmp + 1;
-
- if(*plTmp > 8)
- *plTmp = 0;
-
- if(!m_bBonusCarAvailable && *plTmp == 7)
- *plTmp = 8;
- }
- }
- else if(ulMouseY >= ulCenterY+15 && ulMouseY <= ulCenterY+33)
- {
- if(ulMouseX <= ulCenterX - 165)
- {
- m_ulNumLaps--;
-
- if(m_ulNumLaps < 1)
- m_ulNumLaps = 30;
-
- if((m_CurrGameType == KNOCKOUT || m_CurrGameType == POWERUPKO) &&
- m_ulNumLaps < 3)
- m_ulNumLaps = 30;
- }
- else if(ulMouseX >= ulCenterX + 165)
- {
- m_ulNumLaps++;
-
- if(m_ulNumLaps > 30)
- m_ulNumLaps = 1;
-
- if((m_CurrGameType == KNOCKOUT || m_CurrGameType == POWERUPKO) &&
- m_ulNumLaps < 3)
- m_ulNumLaps = 3;
- }
- }
- else if(ulMouseY >= ulCenterY+60 && ulMouseY <= ulCenterY+78)
- {
- if(ulMouseX <= ulCenterX - 165)
- {
- if(m_ulCurrTrack > 0)
- m_ulCurrTrack--;
- else m_ulCurrTrack = NUM_TRACKS - 1;
- }
- else if(ulMouseX >= ulCenterX + 165)
- {
- m_ulCurrTrack++;
-
- if(m_ulCurrTrack >= NUM_TRACKS)
- m_ulCurrTrack = 0;
- }
- }
- else if(ulMouseY >= ulCenterY+100 && ulMouseY <= ulCenterY+118)
- {
- if(ulMouseX < ulCenterX - 60)
- ExitRace();
- else if(ulMouseX > ulCenterX + 60)
- {
- m_bShowAbortMenu = false;
- m_pEngine->ShowCursor(false);
- }
- else
- {
- FRGameInfo GameInfo;
- TEClient* apClients[3];
- FRCarName aClientCars[3];
- UInt32 ulCount, ulIndex;
-
- memcpy(apClients, m_apClients, sizeof(TEClient*)*3);
- memcpy(aClientCars, m_aClientCars, sizeof(FRCarName)*3);
- memset(m_apClients, 0, sizeof(TEClient*)*3);
- memset(m_aClientCars, 0, sizeof(FRCarName)*3);
-
- ulCount = ulIndex = 0;
-
- for(; ulCount < m_ulNumClients; ulCount++)
- {
- if(apClients[ulCount] != NULL)
- {
- m_apClients[ulIndex] = apClients[ulCount];
- m_aClientCars[ulIndex] = aClientCars[ulCount];
- ulIndex++;
- }
- else m_ulNumClients -= 1;
- }
-
- m_abClientReady[0] = m_abClientReady[1] = m_abClientReady[2] = false;
-
- m_ulNumLapsForCurrRace = m_ulNumLaps;
-
- GameInfo.ulMsgType = FRGAMEINFO;
- GameInfo.GameType = m_CurrGameType;
- GameInfo.ulTrack = m_ulCurrTrack;
- GameInfo.ulNumLaps = m_ulNumLapsForCurrRace;
-
- m_pNetworkManager->SendDataToAllClients(&GameInfo, sizeof(GameInfo));
-
- LoadCurrTrack();
-
- m_bShowAbortMenu = false;
- m_GameState = WAITINGFORCLIENTS;
- TENetworkManager::ms_bRefuseConnection = false;
- }
- }
- }
- else if(ulKey == TE_KEY_ESCAPE || ulKey == TE_KEY_ENTER)
- {
- m_bShowAbortMenu = false;
- m_pEngine->ShowCursor(false);
- }
- }
-
- void FRApp::KeyDownInGameMenuClient(TEKeyState ulKey)
- {
- Int32* plTmp;
- UInt32 ulMouseX, ulMouseY;
- UInt32 ulCenterX = m_usScreenWidth / 2;
- UInt32 ulCenterY = m_usScreenHeight / 2;
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- if(ulKey == TE_MOUSE_BUTTON0)
- {
- if(ulMouseY >= ulCenterY && ulMouseY <= ulCenterY+18)
- {
- if(ulMouseX <= ulCenterX - 165)
- {
- plTmp = (Int32*) &m_CurrCar;
- *plTmp = *plTmp - 1;
-
- if(*plTmp < 0)
- *plTmp = 8;
-
- if(!m_bBonusCarAvailable && *plTmp == 7)
- *plTmp = 6;
- }
- else if(ulMouseX >= ulCenterX + 165)
- {
- plTmp = (Int32*) &m_CurrCar;
- *plTmp = *plTmp + 1;
-
- if(*plTmp > 8)
- *plTmp = 0;
-
- if(!m_bBonusCarAvailable && *plTmp == 7)
- *plTmp = 8;
- }
- }
- else if(ulMouseY >= ulCenterY+60 && ulMouseY <= ulCenterY+78)
- {
- if(ulMouseX < ulCenterX - 50)
- ExitRace();
- else if(ulMouseX > ulCenterX + 50)
- {
- m_bShowAbortMenu = false;
- m_pEngine->ShowCursor(false);
- }
- }
- }
- else if(ulKey == TE_KEY_ESCAPE || ulKey == TE_KEY_ENTER)
- {
- m_bShowAbortMenu = false;
- m_pEngine->ShowCursor(false);
- }
- }
-
- void FRApp::KeyDownStatistic(TEKeyState ulKey)
- {
- UInt32 ulMouseX, ulMouseY;
- UInt32 ulCenterX = m_usScreenWidth / 2;
- UInt32 ulCenterY = m_usScreenHeight / 2;
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- if(ulKey == TE_MOUSE_BUTTON0)
- {
- if(ulMouseY >= ulCenterY+160 && ulMouseY <= ulCenterY+180)
- {
- if(ulMouseX <= ulCenterX - 10)
- {
- if(m_pCareer->ulCurrRace == 10)
- m_pCareer->ulCurrRace = 9;
-
- m_GameState = MAINMENU;
- SaveConfig();
- }
- else if(ulMouseX >= ulCenterX + 10)
- {
- m_GameState = CAREERRACEMENU;
-
- if(m_pCareer->ulCurrRace == 10)
- {
- UInt32 ulCount;
- bool abInUse[10];
-
- memset(abInUse, false, sizeof(bool)*10);
-
- m_pCareer->ulCurrRace = 0;
- memset(m_pCareer->aulDriverScore, 0, sizeof(UInt32)*4);
-
- for(ulCount = 0; ulCount < 10; ulCount++)
- {
- m_pCareer->aulTrack[ulCount] = TERandM(NUM_TRACKS)-1;
-
- if(ulCount > 0)
- {
- while(m_pCareer->aulTrack[ulCount] == m_pCareer->aulTrack[ulCount-1])
- m_pCareer->aulTrack[ulCount] = TERandM(NUM_TRACKS)-1;
- }
-
- do m_pCareer->aulRaces[ulCount] = TERandM(10)-1;
- while(abInUse[m_pCareer->aulRaces[ulCount]]);
-
- abInUse[m_pCareer->aulRaces[ulCount]] = true;
- }
-
- SaveConfig();
- SaveCareer();
- }
- }
- }
- }
- }
-
- bool FRApp::KeyInUse(TEKeyState ulKey)
- {
- if(ulKey == TE_KEY_ESCAPE)
- return true;
-
- for(UInt32 ulCount = 0; ulCount < NUM_KEYS; ulCount++)
- {
- if(m_aulKeys[ulCount] == ulKey)
- return true;
- }
-
- return false;
- }
-
- TEString FRApp::GetCarName(FRCarName Type)
- {
- TEString Name;
-
- switch(Type){
- case PICKUP:
- Name = "Pickup";
- break;
- case MONSTERHUMMER:
- Name = "Monster Hummer";
- break;
- case HUMMER:
- Name = "Hummer";
- break;
- case GOLF:
- Name = "Golf";
- break;
- case FUNERALCAR:
- Name = "Funeral Car";
- break;
- case DODGE:
- Name = "Dodge";
- break;
- case COP:
- Name = "Cop";
- break;
- case AMBULANCE:
- Name = "Ambulance";
- break;
- case ACLASS:
- Name = "Elk Victim";
- break;
- };
-
- return Name;
- }
-
- TEString FRApp::GetGameTypeName(FRGameType Type)
- {
- TEString Name;
-
- switch(Type){
- case NORMALRACE:
- Name = "Normal Race";
- break;
- case POWERUPRACE:
- Name = "Race with Powerups";
- break;
- case KNOCKOUT:
- Name = "Knockout Race";
- break;
- case POWERUPKO:
- Name = "Knockout with Powerups";
- break;
- case RACETODEATH:
- Name = "Race to Death";
- };
-
- Name = TETranslator::GetTranslator()->Translate(Name);
-
- return Name;
- }
-
- void FRApp::RenderMainMenu(void)
- {
- UInt32 ulMouseX, ulMouseY;
- Int32 lX, lY;
- UInt16 usCenterX, usCenterY;
- TETranslator* pTrans = TETranslator::GetTranslator();
- TEString Tmp;
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- usCenterX = m_usScreenWidth / 2;
- usCenterY = m_usScreenHeight / 2;
-
- m_pRenderer->EnableBlending();
- m_pRenderer->SetBlendingState(BLEND_SRC_ALPHA, BLEND_ONE_MINUS_SRC_ALPHA);
-
- m_pRenderer->SetAmbient(255,255,255,255);
- m_pRenderer->SetTexture(m_pMenuBackground);
- m_pRenderer->DrawRectanglef(0.0f, 0.0f, 1.0f, 1.0f);
-
- m_pRenderer->SetAmbient(0,0,200,255);
-
- Tmp = pTrans->Translate("Career");
- lY = usCenterY - 60;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- Tmp = pTrans->Translate("Quick Race");
- lY = usCenterY - 40;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- Tmp = pTrans->Translate("Network Race");
- lY = usCenterY - 20;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- Tmp = pTrans->Translate("Options");
- lY = usCenterY;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- Tmp = pTrans->Translate("Credits");
- lY = usCenterY + 20;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- Tmp = pTrans->Translate("Exit");
- lY = usCenterY + 40;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- m_pRenderer->DisableBlending();
- }
-
- void FRApp::RenderOptionsMenu(void)
- {
- UInt32 ulMouseX, ulMouseY;
- Int32 lX, lY;
- UInt16 usCenterX, usCenterY;
- TETranslator* pTrans = TETranslator::GetTranslator();
- TEString Tmp;
- bool bMouseButton = m_pInputDevices->IsPressed(TE_MOUSE_BUTTON0);
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- usCenterX = m_usScreenWidth / 2;
- usCenterY = m_usScreenHeight / 2;
-
- m_pRenderer->EnableBlending();
- m_pRenderer->SetBlendingState(BLEND_SRC_ALPHA, BLEND_ONE_MINUS_SRC_ALPHA);
-
- m_pRenderer->SetAmbient(255,255,255,255);
- m_pRenderer->SetTexture(m_pMenuBackground);
- m_pRenderer->DrawRectanglef(0.0f, 0.0f, 1.0f, 1.0f);
-
- m_pRenderer->SetAmbient(0,0,200,255);
-
- Tmp = pTrans->Translate("Video");
- lY = usCenterY - 60;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- Tmp = pTrans->Translate("Audio");
- lY = usCenterY - 40;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- Tmp = pTrans->Translate("Input");
- lY = usCenterY - 20;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- lY = usCenterY + 20;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- Tmp = pTrans->Translate("Player Name: ") + m_PlayerName + "_";
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- Tmp = pTrans->Translate("Player Name: ") + m_PlayerName;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- if(!m_bPlayIntro)
- Tmp = pTrans->Translate("Don't Play Intro");
- else Tmp = pTrans->Translate("Play Intro");
- lY = usCenterY+40;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- Tmp = pTrans->Translate("Language: English");
- lY = usCenterY+60;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- if(!m_bShowTacho)
- Tmp = pTrans->Translate("Don't Show Speedometer");
- else Tmp = pTrans->Translate("Show Speedometer");
- lY = usCenterY+80;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- if(!m_bCamAnimation)
- Tmp = pTrans->Translate("Camera: Static");
- else Tmp = pTrans->Translate("Camera: Animated");
- lY = usCenterY+100;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- Tmp = pTrans->Translate("Done");
- lY = usCenterY+120;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- if(bMouseButton)
- {
- SaveConfig();
- m_GameState = MAINMENU;
- }
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- m_pRenderer->DisableBlending();
- }
-
- void FRApp::RenderVideoMenu(void)
- {
- UInt32 ulMouseX, ulMouseY;
- Int32 lX, lY;
- UInt16 usCenterX, usCenterY;
- TETranslator* pTrans = TETranslator::GetTranslator();
- TEString Tmp;
- bool bMouseButton = m_pInputDevices->IsPressed(TE_MOUSE_BUTTON0);
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- usCenterX = m_usScreenWidth / 2;
- usCenterY = m_usScreenHeight / 2;
-
- m_pRenderer->EnableBlending();
- m_pRenderer->SetBlendingState(BLEND_SRC_ALPHA, BLEND_ONE_MINUS_SRC_ALPHA);
-
- m_pRenderer->SetAmbient(255,255,255,255);
- m_pRenderer->SetTexture(m_pMenuBackground);
- m_pRenderer->DrawRectanglef(0.0f, 0.0f, 1.0f, 1.0f);
-
- m_pRenderer->SetAmbient(0,0,200,255);
-
- Tmp = pTrans->Translate("640x480");
- lY = usCenterY - 60;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && ulMouseX < usCenterX)
- {
- lX = usCenterX - 5 - (Int32) (Tmp.GetLength() * 15.3f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else if(m_usScreenWidth == 640)
- {
- lX = usCenterX - 5 - (Int32) (Tmp.GetLength() * 13.6f);
- m_pRenderer->SetAmbient(0,100,0,255);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - 5 - (Int32) (Tmp.GetLength() * 13.6f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- Tmp = pTrans->Translate("800x600");
- lY = usCenterY - 60;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && ulMouseX > usCenterX)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(usCenterX+3, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else if(m_usScreenWidth == 800)
- {
- m_pRenderer->SetAmbient(0,100,0,255);
- m_pRenderer->DrawText(usCenterX+5, lY, 16, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(usCenterX+5, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("1024x768");
- lY = usCenterY - 40;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && ulMouseX < usCenterX)
- {
- lX = usCenterX - 5 - (Int32) (Tmp.GetLength() * 15.3f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else if(m_usScreenWidth == 1024)
- {
- lX = usCenterX - 5 - (Int32) (Tmp.GetLength() * 13.6f);
- m_pRenderer->SetAmbient(0,100,0,255);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - 5 - (Int32) (Tmp.GetLength() * 13.6f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- Tmp = pTrans->Translate("1280x1024");
- lY = usCenterY - 40;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && ulMouseX > usCenterX)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(usCenterX+3, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else if(m_usScreenWidth == 1280)
- {
- m_pRenderer->SetAmbient(0,100,0,255);
- m_pRenderer->DrawText(usCenterX+5, lY, 16, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(usCenterX+5, lY, 16, Tmp);
-
- if(m_usScreenBpp != 0)
- {
- if(m_usScreenBpp == 32) Tmp = pTrans->Translate("Color Depth: 32Bit");
- else Tmp = pTrans->Translate("Color Depth: 16Bit");
-
- lY = usCenterY - 20;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
- }
-
- if(m_usScreenBpp == 0)
- Tmp = pTrans->Translate("In Window");
- else Tmp = pTrans->Translate("Fullscreen");
- lY = usCenterY;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- switch(m_Details){
- case VERYHIGH:
- Tmp = pTrans->Translate("Details: Very High");
- break;
- case HIGH:
- Tmp = pTrans->Translate("Details: High");
- break;
- case MEDIUM:
- Tmp = pTrans->Translate("Details: Medium");
- break;
- case LOW:
- Tmp = pTrans->Translate("Details: Low");
- break;
- case VERYLOW:
- Tmp = pTrans->Translate("Details: Very Low");
- break;
- };
- lY = usCenterY+20;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- if(m_bUseMirror)
- Tmp = pTrans->Translate("Rearview Mirror");
- else Tmp = pTrans->Translate("No Rearview Mirror");
- lY = usCenterY+40;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
-
- Tmp = pTrans->Translate("Done");
- lY = usCenterY+60;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- if(bMouseButton)
- {
- UInt16 usW, usH, usB;
- m_pRenderer->GetResolution(usW, usH, usB);
-
- if(usW != m_usScreenWidth || usH != m_usScreenHeight || usB != m_usScreenBpp)
- m_pRenderer->SetResolution(m_usScreenWidth, m_usScreenHeight, m_usScreenBpp);
-
- ApplyDetailSettings();
- SaveConfig();
- m_GameState = MAINMENU;
- }
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- m_pRenderer->DisableBlending();
- }
-
- void FRApp::RenderAudioMenu(void)
- {
- UInt32 ulMouseX, ulMouseY;
- Int32 lX, lY;
- UInt16 usCenterX, usCenterY;
- TETranslator* pTrans = TETranslator::GetTranslator();
- TEString Tmp;
- bool bMouseButton = m_pInputDevices->IsPressed(TE_MOUSE_BUTTON0);
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- usCenterX = m_usScreenWidth / 2;
- usCenterY = m_usScreenHeight / 2;
-
- m_pRenderer->EnableBlending();
- m_pRenderer->SetBlendingState(BLEND_SRC_ALPHA, BLEND_ONE_MINUS_SRC_ALPHA);
-
- m_pRenderer->SetAmbient(255,255,255,255);
- m_pRenderer->SetTexture(m_pMenuBackground);
- m_pRenderer->DrawRectanglef(0.0f, 0.0f, 1.0f, 1.0f);
-
- m_pRenderer->SetAmbient(0,0,200,255);
-
- Tmp = pTrans->Translate("General Volume");
- m_pRenderer->DrawText(usCenterX - (Int32) (Tmp.GetLength() * 6.8f), usCenterY-60, 16, Tmp);
-
- m_pRenderer->SetTexture(NULL);
- lY = usCenterY-30;
- if((Int32) ulMouseY >= lY - 20 && (Int32) ulMouseY <= lY)
- m_pRenderer->SetAmbient(200,0,0,255);
-
- m_pRenderer->DrawLine(usCenterX-52, lY, usCenterX+52, lY, 1.0f);
- m_pRenderer->DrawLine(usCenterX-52, lY-10, usCenterX-52, lY+1, 2.0f);
- m_pRenderer->DrawLine(usCenterX+52, lY-10, usCenterX+52, lY+1, 2.0f);
-
- m_pRenderer->SetAmbient(0,100,0,255);
- lX = usCenterX - 50 + (UInt32) (25*m_fGeneralVolume);
- m_pRenderer->DrawLine(lX, lY-10, lX, lY, 2.0f);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- Tmp = pTrans->Translate("Music Volume");
- m_pRenderer->DrawText(usCenterX - (Int32) (Tmp.GetLength() * 6.8f), usCenterY-20, 16, Tmp);
-
- m_pRenderer->SetTexture(NULL);
- lY = usCenterY+10;
- if((Int32) ulMouseY >= lY - 20 && (Int32) ulMouseY <= lY)
- m_pRenderer->SetAmbient(200,0,0,255);
-
- m_pRenderer->DrawLine(usCenterX-52, lY, usCenterX+52, lY, 1.0f);
- m_pRenderer->DrawLine(usCenterX-52, lY-10, usCenterX-52, lY+1, 2.0f);
- m_pRenderer->DrawLine(usCenterX+52, lY-10, usCenterX+52, lY+1, 2.0f);
-
- m_pRenderer->SetAmbient(0,100,0,255);
- lX = usCenterX - 50 + (UInt32) (12.5f*m_fMusicVolume);
- m_pRenderer->DrawLine(lX, lY-10, lX, lY, 2.0f);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- Tmp = pTrans->Translate("Background Music:");
- m_pRenderer->DrawText(usCenterX - (Int32) (Tmp.GetLength() * 6.8f), usCenterY+20, 16, Tmp);
-
- switch(m_Music){
- case DEFAULT:
- Tmp = pTrans->Translate("Default Game Music");
- break;
- case FROMCD:
- Tmp = pTrans->Translate("From CD");
- break;
- case NONE:
- Tmp = pTrans->Translate("None");
- break;
- };
- lY = usCenterY+40;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- Tmp = pTrans->Translate("Done");
- lY = usCenterY+60;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- if(bMouseButton)
- {
- m_GameState = MAINMENU;
- m_pSoundDevice->SetVolume(m_fGeneralVolume);
- SaveConfig();
- }
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- m_pRenderer->DisableBlending();
- }
-
- void FRApp::RenderInputMenu1(void)
- {
- UInt32 ulMouseX, ulMouseY, ulCount;
- Int32 lX, lY;
- UInt16 usCenterX, usCenterY;
- TETranslator* pTrans = TETranslator::GetTranslator();
- TEString Tmp, aCom[6];
- Char acArrow[2] = {31,'\0'};
- bool bMouseButton = m_pInputDevices->IsPressed(TE_MOUSE_BUTTON0);
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- usCenterX = m_usScreenWidth / 2;
- usCenterY = m_usScreenHeight / 2;
-
- m_pRenderer->EnableBlending();
- m_pRenderer->SetBlendingState(BLEND_SRC_ALPHA, BLEND_ONE_MINUS_SRC_ALPHA);
-
- m_pRenderer->SetAmbient(255,255,255,255);
- m_pRenderer->SetTexture(m_pMenuBackground);
- m_pRenderer->DrawRectanglef(0.0f, 0.0f, 1.0f, 1.0f);
-
- m_pRenderer->SetAmbient(0,0,200,255);
-
- aCom[0] = pTrans->Translate("Accelerate");
- aCom[1] = pTrans->Translate("Brake");
- aCom[2] = pTrans->Translate("Steer Left");
- aCom[3] = pTrans->Translate("Steer Right");
- aCom[4] = pTrans->Translate("Handbrake");
- aCom[5] = pTrans->Translate("Horn");
-
- for(ulCount = 0; ulCount < 6; ulCount++)
- {
- Tmp = m_pInputDevices->GetKeyName(m_aulKeys[ulCount]);
- lY = usCenterY-80+20*ulCount;
- lX = usCenterX - 175;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- Tmp = Tmp + "_";
- m_pRenderer->DrawText(lX, lY, 16, aCom[ulCount]);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(usCenterX+10, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- m_pRenderer->DrawText(lX, lY, 16, aCom[ulCount]);
- m_pRenderer->DrawText(usCenterX+11, lY, 16, Tmp);
- }
- }
-
- lY = usCenterY+40;
- lX = usCenterX+120;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 16, acArrow);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(lX, lY, 14, acArrow);
-
- Tmp = pTrans->Translate("Done");
- lY = usCenterY+60;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- if(bMouseButton)
- {
- m_GameState = MAINMENU;
- SaveConfig();
- }
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- m_pRenderer->DisableBlending();
- }
-
- void FRApp::RenderInputMenu2(void)
- {
- UInt32 ulMouseX, ulMouseY, ulCount;
- Int32 lX, lY;
- UInt16 usCenterX, usCenterY;
- TETranslator* pTrans = TETranslator::GetTranslator();
- TEString Tmp, aCom[5];
- Char acArrow[2] = {30,'\0'};
- bool bMouseButton = m_pInputDevices->IsPressed(TE_MOUSE_BUTTON0);
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- usCenterX = m_usScreenWidth / 2;
- usCenterY = m_usScreenHeight / 2;
-
- m_pRenderer->EnableBlending();
- m_pRenderer->SetBlendingState(BLEND_SRC_ALPHA, BLEND_ONE_MINUS_SRC_ALPHA);
-
- m_pRenderer->SetAmbient(255,255,255,255);
- m_pRenderer->SetTexture(m_pMenuBackground);
- m_pRenderer->DrawRectanglef(0.0f, 0.0f, 1.0f, 1.0f);
-
- m_pRenderer->SetAmbient(0,0,200,255);
-
- lY = usCenterY-80;
- lX = usCenterX+120;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 16, acArrow);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 14, acArrow);
-
- aCom[0] = pTrans->Translate("Use Powerup");
- aCom[1] = pTrans->Translate("Reset");
- aCom[2] = pTrans->Translate("Cam Position");
- aCom[3] = pTrans->Translate("Look Back");
- aCom[4] = pTrans->Translate("Screenshot");
-
- for(ulCount = 0; ulCount < 5; ulCount++)
- {
- Tmp = m_pInputDevices->GetKeyName(m_aulKeys[ulCount+6]);
- lY = usCenterY-60+20*ulCount;
- lX = usCenterX - 175;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- Tmp = Tmp + "_";
- m_pRenderer->DrawText(lX, lY, 16, aCom[ulCount]);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(usCenterX+10, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- m_pRenderer->DrawText(lX, lY, 16, aCom[ulCount]);
- m_pRenderer->DrawText(usCenterX+11, lY, 16, Tmp);
- }
- }
-
-
- lY = usCenterY+40;
- lX = usCenterX+120;
- acArrow[0] = 31;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 16, acArrow);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(lX, lY, 14, acArrow);
-
- Tmp = pTrans->Translate("Done");
- lY = usCenterY+60;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- if(bMouseButton)
- {
- m_GameState = MAINMENU;
- SaveConfig();
- }
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- m_pRenderer->DisableBlending();
- }
-
- void FRApp::RenderInputMenu3(void)
- {
- UInt32 ulMouseX, ulMouseY;
- Int32 lX, lY;
- UInt16 usCenterX, usCenterY;
- TETranslator* pTrans = TETranslator::GetTranslator();
- TEString Tmp;
- Char acArrow[2] = {30,'\0'};
- bool bMouseButton = m_pInputDevices->IsPressed(TE_MOUSE_BUTTON0);
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- usCenterX = m_usScreenWidth / 2;
- usCenterY = m_usScreenHeight / 2;
-
- m_pRenderer->EnableBlending();
- m_pRenderer->SetBlendingState(BLEND_SRC_ALPHA, BLEND_ONE_MINUS_SRC_ALPHA);
-
- m_pRenderer->SetAmbient(255,255,255,255);
- m_pRenderer->SetTexture(m_pMenuBackground);
- m_pRenderer->DrawRectanglef(0.0f, 0.0f, 1.0f, 1.0f);
-
- m_pRenderer->SetAmbient(0,0,200,255);
-
- lY = usCenterY-80;
- lX = usCenterX+120;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 16, acArrow);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 14, acArrow);
-
- if(m_bUseJoystick)
- Tmp = pTrans->Translate("Disable Joystick");
- else Tmp = pTrans->Translate("Enable Joystick");
- lY = usCenterY-40;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- if(m_bUseJoystick)
- {
- switch(m_JoystickAccel){
- case YAXIS:
- Tmp = pTrans->Translate("Gas Pedal: Y-Axis");
- break;
- case ZAXIS:
- Tmp = pTrans->Translate("Gas Pedal: Z-Axis");
- break;
- case NOAXIS:
- Tmp = pTrans->Translate("Gas Pedal: None");
- break;
- };
- lY = usCenterY-20;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- Tmp = pTrans->Translate("Joystick Sensitivity");
- m_pRenderer->DrawText(usCenterX - (Int32) (Tmp.GetLength() * 6.8f), usCenterY + 10, 16, Tmp);
-
- m_pRenderer->SetTexture(NULL);
- lY = usCenterY+40;
- if((Int32) ulMouseY >= lY - 20 && (Int32) ulMouseY <= lY)
- m_pRenderer->SetAmbient(200,0,0,255);
-
- m_pRenderer->DrawLine(usCenterX-52, lY, usCenterX+52, lY, 1.0f);
- m_pRenderer->DrawLine(usCenterX-52, lY-10, usCenterX-52, lY+1, 2.0f);
- m_pRenderer->DrawLine(usCenterX+52, lY-10, usCenterX+52, lY+1, 2.0f);
-
- m_pRenderer->SetAmbient(0,100,0,255);
- lX = usCenterX - 50 + (UInt32) (25*m_fJoystickSensitivity);
- m_pRenderer->DrawLine(lX, lY-10, lX, lY, 2.0f);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
-
- Tmp = pTrans->Translate("Done");
- lY = usCenterY+60;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- if(bMouseButton)
- {
- m_GameState = MAINMENU;
- SaveConfig();
- }
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- m_pRenderer->DisableBlending();
- }
-
- void FRApp::RenderCareerMenu(void)
- {
- UInt32 ulMouseX, ulMouseY;
- Int32 lX, lY;
- UInt16 usCenterX, usCenterY;
- TETranslator* pTrans = TETranslator::GetTranslator();
- TEString Tmp;
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- usCenterX = m_usScreenWidth / 2;
- usCenterY = m_usScreenHeight / 2;
-
- m_pRenderer->EnableBlending();
- m_pRenderer->SetBlendingState(BLEND_SRC_ALPHA, BLEND_ONE_MINUS_SRC_ALPHA);
-
- m_pRenderer->SetAmbient(255,255,255,255);
- m_pRenderer->SetTexture(m_pMenuBackground);
- m_pRenderer->DrawRectanglef(0.0f, 0.0f, 1.0f, 1.0f);
-
- m_pRenderer->SetAmbient(0,0,200,255);
-
- Tmp = pTrans->Translate("Difficulty:");
- lY = usCenterY-40;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Medium");
- lY = usCenterY-10;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
-
- if(m_usDifficulty == 2)
- {
- m_pRenderer->SetAmbient(0,100,0,255);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Easy");
- lX = usCenterX - 120 - (Int32) (Tmp.GetLength() * 13.6f);
-
- if(m_usDifficulty == 1)
- {
- m_pRenderer->SetAmbient(0,100,0,255);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Hard");
- lX = usCenterX + 120;
-
- if(m_usDifficulty == 3)
- {
- m_pRenderer->SetAmbient(0,100,0,255);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
-
- if(m_pCareer != NULL)
- {
- Tmp = pTrans->Translate("Continue Career");
- lY = usCenterY+90;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 20)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
- }
-
- Tmp = pTrans->Translate("Cancel");
- lY = usCenterY+150;
- lX = usCenterX - 10 - (UInt16) (Tmp.GetLength() * 15.3f);
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 20 &&
- (Int32) ulMouseX < usCenterX)
- {
- lX -= (Int32) (Tmp.GetLength() * 0.17f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Start New Career");
- lY = usCenterY+150;
- lX = usCenterX+10;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 20 &&
- (Int32) ulMouseX > usCenterX)
- {
- lX -= (Int32) (Tmp.GetLength() * 0.17f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- m_pRenderer->DisableBlending();
- }
-
- void FRApp::RenderCareerRaceMenu(void)
- {
-
- UInt32 ulMouseX, ulMouseY;
- Int32 lX, lY;
- UInt16 usCenterX, usCenterY;
- TETranslator* pTrans = TETranslator::GetTranslator();
- TEString Tmp;
- Char acTmp[32];
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- usCenterX = m_usScreenWidth / 2;
- usCenterY = m_usScreenHeight / 2;
-
- m_pRenderer->EnableBlending();
- m_pRenderer->SetBlendingState(BLEND_SRC_ALPHA, BLEND_ONE_MINUS_SRC_ALPHA);
-
- m_pRenderer->SetAmbient(255,255,255,255);
- m_pRenderer->SetTexture(m_pMenuBackground);
- m_pRenderer->DrawRectanglef(0.0f, 0.0f, 1.0f, 1.0f);
-
- m_pRenderer->SetTexture(m_apTrackImages[m_pCareer->aulTrack[m_pCareer->ulCurrRace]]);
- m_pRenderer->DrawRectangle(usCenterX-35, usCenterY-35, usCenterX+35, usCenterY+35);
-
- m_pRenderer->SetAmbient(0,100,0,255);
-
- Tmp = ms_aRaces[m_pCareer->aulRaces[m_pCareer->ulCurrRace]].m_Title;
- lY = usCenterY-80;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- m_pRenderer->SetAmbient(0,0,200,255);
-
- Tmp = pTrans->Translate("Next Race:");
- lY = usCenterY-100;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- m_CurrGameType = ms_aRaces[m_pCareer->aulRaces[m_pCareer->ulCurrRace]].m_GameType;
- Tmp = "";
- Tmp = Tmp + "[" + GetGameTypeName(m_CurrGameType) + "]";
- Tmp.MakeUpperCase();
- lY = usCenterY-60;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
-
- Tmp = pTrans->Translate(ms_aRaces[m_pCareer->aulRaces[m_pCareer->ulCurrRace]].m_aInfo[0]);
- lY = usCenterY+45;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate(ms_aRaces[m_pCareer->aulRaces[m_pCareer->ulCurrRace]].m_aInfo[1]);
- lY = usCenterY+63;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate(ms_aRaces[m_pCareer->aulRaces[m_pCareer->ulCurrRace]].m_aInfo[2]);
- lY = usCenterY+81;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- if(!ms_aRaces[m_pCareer->aulRaces[m_pCareer->ulCurrRace]].m_bForceCar)
- {
- Char acArrowLeft[2] = {17,'\0'};
- Char acArrowRight[2] = {16,'\0'};
-
- lY = usCenterY+130;
- lX = usCenterX-180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX <= usCenterX - 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowLeft);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else m_pRenderer->DrawText(lX, lY, 16, acArrowLeft);
-
- lX = usCenterX+180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX >= usCenterX + 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowRight);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else m_pRenderer->DrawText(lX, lY, 16, acArrowRight);
- }
- else m_CurrCar = ms_aRaces[m_pCareer->aulRaces[m_pCareer->ulCurrRace]].m_ForcedCar;
-
- Tmp = pTrans->Translate("Car:");
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY + 110;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = GetCarName(m_CurrCar);
- Tmp.MakeUpperCase();
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY + 130;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- m_ulNumLaps = 3 + (UInt32) (m_pCareer->ulCurrRace * 0.5f);
- m_ulNumLaps = m_ulNumLaps + (UInt32) (m_ulNumLaps * (m_pCareer->usDifficulty-1) * 0.5f);
-
- Tmp = pTrans->Translate("Laps:");
- sprintf(acTmp, "%d", m_ulNumLaps);
- Tmp = Tmp + acTmp;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY + 160;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Cancel");
- lY = usCenterY+190;
- lX = usCenterX - 10 - (UInt16) (Tmp.GetLength() * 15.3f);
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 20 &&
- (Int32) ulMouseX < usCenterX)
- {
- lX -= (Int32) (Tmp.GetLength() * 0.17f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Continue");
- lX = usCenterX+10;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 20 &&
- (Int32) ulMouseX > usCenterX)
- {
- lX -= (Int32) (Tmp.GetLength() * 0.17f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- m_pRenderer->DisableBlending();
- }
-
- void FRApp::RenderQuickRaceMenu(void)
- {
- UInt32 ulMouseX, ulMouseY;
- Int32 lX, lY;
- UInt16 usCenterX, usCenterY;
- TETranslator* pTrans = TETranslator::GetTranslator();
- TEString Tmp;
- Char acTmp[32];
- Char acArrowLeft[2] = {17,'\0'};
- Char acArrowRight[2] = {16,'\0'};
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- usCenterX = m_usScreenWidth / 2;
- usCenterY = m_usScreenHeight / 2;
-
- m_pRenderer->EnableBlending();
- m_pRenderer->SetBlendingState(BLEND_SRC_ALPHA, BLEND_ONE_MINUS_SRC_ALPHA);
-
- m_pRenderer->SetAmbient(255,255,255,255);
- m_pRenderer->SetTexture(m_pMenuBackground);
- m_pRenderer->DrawRectanglef(0.0f, 0.0f, 1.0f, 1.0f);
-
- m_pRenderer->SetTexture(m_apTrackImages[m_ulCurrTrack]);
- m_pRenderer->DrawRectangle(usCenterX-50, usCenterY+70, usCenterX+50, usCenterY+170);
-
- m_pRenderer->SetAmbient(0,0,200,255);
-
- Tmp = GetGameTypeName(m_CurrGameType);
- Tmp.MakeUpperCase();
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY - 95;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- lY = usCenterY-95;
- lX = usCenterX-180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX <= usCenterX - 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowLeft);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowLeft);
-
- lY = usCenterY-95;
- lX = usCenterX+180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX >= usCenterX + 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowRight);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowRight);
-
- Tmp = pTrans->Translate("Car:");
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY - 70;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = GetCarName(m_CurrCar);
- Tmp.MakeUpperCase();
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY - 50;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- lY = usCenterY-50;
- lX = usCenterX-180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX <= usCenterX - 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowLeft);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowLeft);
-
- lY = usCenterY-50;
- lX = usCenterX+180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX >= usCenterX + 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowRight);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowRight);
-
- Tmp = pTrans->Translate("Laps:");
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY - 25;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- sprintf(acTmp, "%d", m_ulNumLaps);
- Tmp = acTmp;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY - 5;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- lY = usCenterY-5;
- lX = usCenterX-180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX <= usCenterX - 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowLeft);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowLeft);
-
- lY = usCenterY-5;
- lX = usCenterX+180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX >= usCenterX + 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowRight);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowRight);
-
-
- Tmp = pTrans->Translate("Track:");
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY + 20;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = ms_aacTrackNames[m_ulCurrTrack];
- Tmp.MakeUpperCase();
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY + 40;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- lY = usCenterY+40;
- lX = usCenterX-180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX <= usCenterX - 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowLeft);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowLeft);
-
- lY = usCenterY+40;
- lX = usCenterX+180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX >= usCenterX + 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowRight);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowRight);
-
- Tmp = pTrans->Translate("Cancel");
- lY = usCenterY+180;
- lX = usCenterX - 10 - (UInt16) (Tmp.GetLength() * 15.3f);
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 &&
- (Int32) ulMouseX < usCenterX)
- {
- lX -= (Int32) (Tmp.GetLength() * 0.17f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Start Race");
- lY = usCenterY+180;
- lX = usCenterX+10;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 &&
- (Int32) ulMouseX > usCenterX)
- {
- lX -= (Int32) (Tmp.GetLength() * 0.17f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- m_pRenderer->DisableBlending();
- }
-
- void FRApp::RenderNetworkMenu(void)
- {
- UInt32 ulMouseX, ulMouseY;
- Int32 lX, lY;
- UInt16 usCenterX, usCenterY;
- TETranslator* pTrans = TETranslator::GetTranslator();
- TEString Tmp;
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- usCenterX = m_usScreenWidth / 2;
- usCenterY = m_usScreenHeight / 2;
-
- m_pRenderer->EnableBlending();
- m_pRenderer->SetBlendingState(BLEND_SRC_ALPHA, BLEND_ONE_MINUS_SRC_ALPHA);
-
- m_pRenderer->SetAmbient(255,255,255,255);
- m_pRenderer->SetTexture(m_pMenuBackground);
- m_pRenderer->DrawRectanglef(0.0f, 0.0f, 1.0f, 1.0f);
-
- m_pRenderer->SetAmbient(0,0,200,255);
-
- Tmp = pTrans->Translate("Start Game");
- lY = usCenterY-40;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- Tmp = pTrans->Translate("Join Game");
- lY = usCenterY+40;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- Tmp = pTrans->Translate("Cancel");
- lY = usCenterY+180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- m_pRenderer->DisableBlending();
- }
-
- void FRApp::RenderServerMenu(void)
- {
- UInt32 ulMouseX, ulMouseY;
- Int32 lX, lY;
- UInt16 usCenterX, usCenterY;
- TETranslator* pTrans = TETranslator::GetTranslator();
- TEString Tmp;
- Char acTmp[32];
- Char acArrowLeft[2] = {17,'\0'};
- Char acArrowRight[2] = {16,'\0'};
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- usCenterX = m_usScreenWidth / 2;
- usCenterY = m_usScreenHeight / 2;
-
- m_pRenderer->EnableBlending();
- m_pRenderer->SetBlendingState(BLEND_SRC_ALPHA, BLEND_ONE_MINUS_SRC_ALPHA);
-
- m_pRenderer->SetAmbient(255,255,255,255);
- m_pRenderer->SetTexture(m_pMenuBackground);
- m_pRenderer->DrawRectanglef(0.0f, 0.0f, 1.0f, 1.0f);
-
- m_pRenderer->SetAmbient(0,0,200,255);
-
- Tmp = GetGameTypeName(m_CurrGameType);;
- Tmp.MakeUpperCase();
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY - 95;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- lY = usCenterY-95;
- lX = usCenterX-180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX <= usCenterX - 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowLeft);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowLeft);
-
- lY = usCenterY-95;
- lX = usCenterX+180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX >= usCenterX + 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowRight);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowRight);
-
- Tmp = pTrans->Translate("Car:");
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY - 70;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = GetCarName(m_CurrCar);
- Tmp.MakeUpperCase();
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY - 50;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- lY = usCenterY-50;
- lX = usCenterX-180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX <= usCenterX - 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowLeft);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowLeft);
-
- lY = usCenterY-50;
- lX = usCenterX+180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX >= usCenterX + 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowRight);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowRight);
-
-
- Tmp = pTrans->Translate("Laps:");
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY - 25;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- sprintf(acTmp, "%d", m_ulNumLaps);
- Tmp = acTmp;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY - 5;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- lY = usCenterY-5;
- lX = usCenterX-180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX <= usCenterX - 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowLeft);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowLeft);
-
- lY = usCenterY-5;
- lX = usCenterX+180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX >= usCenterX + 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowRight);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowRight);
-
-
- Tmp = pTrans->Translate("Track:");
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY + 20;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = ms_aacTrackNames[m_ulCurrTrack];
- Tmp.MakeUpperCase();
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY + 40;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- lY = usCenterY+40;
- lX = usCenterX-180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX <= usCenterX - 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowLeft);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowLeft);
-
- lY = usCenterY+40;
- lX = usCenterX+180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX >= usCenterX + 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowRight);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowRight);
-
- Tmp = "Net Port:";
- lY = usCenterY+90;
- lX = usCenterX-250;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- sprintf(acTmp, "%d_", m_usNetPort);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(usCenterX, lY-1, 18, acTmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- sprintf(acTmp, "%d", m_usNetPort);
- m_pRenderer->DrawText(usCenterX, lY, 16, acTmp);
- }
-
- Tmp = pTrans->Translate("Server Password:");
- lY = usCenterY+120;
- lX = usCenterX-250;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- if(m_ServerPassword.GetLength() != 0)
- Tmp = m_ServerPassword + "_";
- else Tmp = "_";
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(usCenterX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else if(m_ServerPassword.GetLength() != 0)
- m_pRenderer->DrawText(usCenterX, lY, 16, m_ServerPassword);
-
- Tmp = pTrans->Translate("Cancel");
- lY = usCenterY+180;
- lX = usCenterX - (UInt16) (Tmp.GetLength() * 15.3f);
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 &&
- (Int32) ulMouseX < usCenterX)
- {
- lX -= (Int32) (Tmp.GetLength() * 0.17f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Begin Hosting");
- lY = usCenterY+180;
- lX = usCenterX+10;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 &&
- (Int32) ulMouseX > usCenterX)
- {
- lX -= (Int32) (Tmp.GetLength() * 0.17f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- m_pRenderer->DisableBlending();
- }
-
- void FRApp::RenderClientMenu(void)
- {
- UInt32 ulMouseX, ulMouseY;
- Int32 lX, lY;
- UInt16 usCenterX, usCenterY;
- TETranslator* pTrans = TETranslator::GetTranslator();
- TEString Tmp;
- Char acTmp[32];
- Char acArrowLeft[2] = {17,'\0'};
- Char acArrowRight[2] = {16,'\0'};
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- usCenterX = m_usScreenWidth / 2;
- usCenterY = m_usScreenHeight / 2;
-
- m_pRenderer->EnableBlending();
- m_pRenderer->SetBlendingState(BLEND_SRC_ALPHA, BLEND_ONE_MINUS_SRC_ALPHA);
-
- m_pRenderer->SetAmbient(255,255,255,255);
- m_pRenderer->SetTexture(m_pMenuBackground);
- m_pRenderer->DrawRectanglef(0.0f, 0.0f, 1.0f, 1.0f);
-
- m_pRenderer->SetAmbient(0,0,200,255);
-
- Tmp = pTrans->Translate("Car:");
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY - 70;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = GetCarName(m_CurrCar);
- Tmp.MakeUpperCase();
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY - 40;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- lX = usCenterX-180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX <= usCenterX - 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowLeft);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowLeft);
-
- lX = usCenterX+180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX >= usCenterX + 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowRight);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowRight);
-
- Tmp = "Server IP:";
- lY = usCenterY+40;
- lX = usCenterX-250;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- sprintf(acTmp, " . . .");
- m_pRenderer->DrawText(usCenterX, lY, 16, acTmp);
- sprintf(acTmp, "%d", m_IP.aucAddress[0]);
- m_pRenderer->DrawText(usCenterX, lY, 16, acTmp);
- sprintf(acTmp, "%d", m_IP.aucAddress[1]);
- m_pRenderer->DrawText(usCenterX+78, lY, 16, acTmp);
- sprintf(acTmp, "%d", m_IP.aucAddress[2]);
- m_pRenderer->DrawText(usCenterX+156, lY, 16, acTmp);
- sprintf(acTmp, "%d", m_IP.aucAddress[3]);
- m_pRenderer->DrawText(usCenterX+234, lY, 16, acTmp);
-
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
-
- if(ulMouseX >= (UInt32) usCenterX && ulMouseX <= (UInt32) usCenterX + 39)
- {
- sprintf(acTmp, "%d_", m_IP.aucAddress[0]);
- m_pRenderer->DrawText(usCenterX, lY, 16, acTmp);
- }
- else if(ulMouseX >= (UInt32) usCenterX+78 && ulMouseX <= (UInt32) usCenterX + 117)
- {
- sprintf(acTmp, "%d_", m_IP.aucAddress[1]);
- m_pRenderer->DrawText(usCenterX+78, lY, 16, acTmp);
- }
- else if(ulMouseX >= (UInt32) usCenterX+156 && ulMouseX <= (UInt32) usCenterX + 195)
- {
- sprintf(acTmp, "%d_", m_IP.aucAddress[2]);
- m_pRenderer->DrawText(usCenterX+156, lY, 16, acTmp);
- }
- else if(ulMouseX >= (UInt32) usCenterX+234 && ulMouseX <= (UInt32) usCenterX + 273)
- {
- sprintf(acTmp, "%d_", m_IP.aucAddress[3]);
- m_pRenderer->DrawText(usCenterX+234, lY, 16, acTmp);
- }
-
- m_pRenderer->SetAmbient(0,0,200,255);
- }
-
- Tmp = "Net Port:";
- lY = usCenterY+70;
- lX = usCenterX-250;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- sprintf(acTmp, "%d", m_usNetPort);
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- sprintf(acTmp, "%d_", m_usNetPort);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(usCenterX, lY, 16, acTmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- {
- sprintf(acTmp, "%d", m_usNetPort);
- m_pRenderer->DrawText(usCenterX, lY, 16, acTmp);
- }
-
- Tmp = pTrans->Translate("Server Password:");
- lY = usCenterY+100;
- lX = usCenterX-250;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- if(m_ServerPassword.GetLength() != 0)
- Tmp = m_ServerPassword + "_";
- else Tmp = "_";
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(usCenterX, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else if(m_ServerPassword.GetLength() != 0)
- m_pRenderer->DrawText(usCenterX, lY, 16, m_ServerPassword);
-
- Tmp = pTrans->Translate("Cancel");
- lY = usCenterY+160;
- lX = usCenterX - 10 - (UInt16) (Tmp.GetLength() * 15.3f);
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 &&
- (Int32) ulMouseX < usCenterX)
- {
- lX -= (Int32) (Tmp.GetLength() * 0.17f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Connect");
- lX = usCenterX+10;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 &&
- (Int32) ulMouseX > usCenterX)
- {
- lX -= (Int32) (Tmp.GetLength() * 0.17f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- m_pRenderer->DisableBlending();
- }
-
- void FRApp::RenderWaitingForServer(void)
- {
- if(!m_bConnectedToServer)
- {
- m_GameState = CLIENTMENU;
- return;
- }
-
- UInt32 ulMouseX, ulMouseY;
- Int32 lX, lY;
- UInt16 usCenterX, usCenterY;
- TETranslator* pTrans = TETranslator::GetTranslator();
- TEString Tmp;
- bool bMouseButton = m_pInputDevices->IsPressed(TE_MOUSE_BUTTON0);
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- usCenterX = m_usScreenWidth / 2;
- usCenterY = m_usScreenHeight / 2;
-
- m_pRenderer->EnableBlending();
- m_pRenderer->SetBlendingState(BLEND_SRC_ALPHA, BLEND_ONE_MINUS_SRC_ALPHA);
-
- m_pRenderer->SetAmbient(255,255,255,255);
- m_pRenderer->SetTexture(m_pMenuBackground);
- m_pRenderer->DrawRectanglef(0.0f, 0.0f, 1.0f, 1.0f);
-
- m_pRenderer->SetAmbient(0,0,200,255);
-
- Tmp = pTrans->Translate("Waiting for server");
- lY = usCenterY-8;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Cancel");
- lY = usCenterY+190;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
-
- if(bMouseButton)
- {
- m_GameState = MAINMENU;
- m_pNetworkManager->EndClient();
- UnloadBSPFile();
- }
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- m_pRenderer->DisableBlending();
- }
-
- void FRApp::RenderWaitingForClients(void)
- {
- UInt32 ulMouseX, ulMouseY;
- Int32 lX, lY;
- UInt16 usCenterX, usCenterY;
- TETranslator* pTrans = TETranslator::GetTranslator();
- TEString Tmp;
- bool bMouseButton = m_pInputDevices->IsPressed(TE_MOUSE_BUTTON0);
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- usCenterX = m_usScreenWidth / 2;
- usCenterY = m_usScreenHeight / 2;
-
- m_pRenderer->EnableBlending();
- m_pRenderer->SetBlendingState(BLEND_SRC_ALPHA, BLEND_ONE_MINUS_SRC_ALPHA);
-
- m_pRenderer->SetAmbient(255,255,255,255);
- m_pRenderer->SetTexture(m_pMenuBackground);
- m_pRenderer->DrawRectanglef(0.0f, 0.0f, 1.0f, 1.0f);
-
- m_pRenderer->SetAmbient(0,0,200,255);
-
- Tmp = pTrans->Translate("Clients connected:");
- lY = usCenterY-100;
- lX = usCenterX-300;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Car:");
- lX = usCenterX+30;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- lX = usCenterX+250;
- m_pRenderer->DrawText(lX, lY, 16, "Ping:");
-
- for(UInt32 ulCount = 0; ulCount < m_ulNumClients; ulCount++)
- {
- Char acPing[8];
-
- if(m_abClientReady[ulCount])
- sprintf(acPing, "%d", m_apClients[ulCount]->ulLastPing);
- else sprintf(acPing, TETranslator::GetTranslator()->Translate("Wait").Get());
- lY += 20;
-
- m_pRenderer->DrawText(usCenterX-300, lY, 16, m_apClients[ulCount]->acName);
-
-
- if(m_abClientReady[ulCount])
- Tmp = GetCarName(m_aClientCars[ulCount]);
- else Tmp = acPing;
-
- m_pRenderer->DrawText(usCenterX+30, lY, 16, Tmp);
- m_pRenderer->DrawText(usCenterX+250, lY, 16, acPing);
- }
-
- Tmp = pTrans->Translate("Cancel");
- lY = usCenterY+180;
- lX = usCenterX - 10 - (UInt16) (Tmp.GetLength() * 15.3f);
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 &&
- (Int32) ulMouseX < usCenterX)
- {
- lX -= (Int32) (Tmp.GetLength() * 0.17f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- if(bMouseButton)
- {
- m_GameState = MAINMENU;
- m_pNetworkManager->EndServer();
- UnloadBSPFile();
- }
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Start Race");
- lY = usCenterY+180;
- lX = usCenterX+10;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 &&
- (Int32) ulMouseX > usCenterX)
- {
- lX -= (Int32) (Tmp.GetLength() * 0.17f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- if(bMouseButton && m_ulNumClients > 0)
- {
- FRPlayerInfo PlayerInfo;
- UInt32 ulCount;
- bool bAllReady = true;
-
- for(ulCount = 0; ulCount < m_ulNumClients; ulCount++)
- {
- if(!m_abClientReady[ulCount])
- {
- bAllReady = false;
- break;
- }
- }
-
- if(bAllReady)
- {
- TENetworkManager::ms_bRefuseConnection = true;
-
- PlayerInfo.ulMsgType = FRPLAYERINFO;
- PlayerInfo.ulNumPlayers = m_ulNumClients+1;
- PlayerInfo.aCars[0] = m_CurrCar;
- PlayerInfo.aCars[1] = PlayerInfo.aCars[2] = PlayerInfo.aCars[3] = ACLASS;
- sprintf(PlayerInfo.aPlayerNames[0], m_PlayerName.Get());
- sprintf(PlayerInfo.aPlayerNames[1], " ");
- sprintf(PlayerInfo.aPlayerNames[2], " ");
- sprintf(PlayerInfo.aPlayerNames[3], " ");
-
- for(ulCount = 0; ulCount < m_ulNumClients; ulCount++)
- {
- sprintf(PlayerInfo.aPlayerNames[1+ulCount], m_apClients[ulCount]->acName);
- PlayerInfo.aCars[1+ulCount] = m_aClientCars[ulCount];
- }
-
-
- for(ulCount = 0; ulCount < m_ulNumClients; ulCount++)
- {
- PlayerInfo.ulOwnPos = ulCount+1;
- m_pNetworkManager->SendDataToClient(m_apClients[ulCount]->ulID, &PlayerInfo, sizeof(PlayerInfo));
- }
-
- m_bCareerRace = false;
- StartNetworkRace();
- }
- }
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- m_pRenderer->DisableBlending();
- }
-
- void FRApp::RenderCredits(void)
- {
- UInt32 ulMouseX, ulMouseY;
- Int32 lX, lY;
- UInt16 usCenterX, usCenterY;
- TETranslator* pTrans = TETranslator::GetTranslator();
- TEString Tmp;
- bool bMouseButton = m_pInputDevices->IsPressed(TE_MOUSE_BUTTON0);
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- usCenterX = m_usScreenWidth / 2;
- usCenterY = m_usScreenHeight / 2;
-
- m_pRenderer->EnableBlending();
- m_pRenderer->SetBlendingState(BLEND_SRC_ALPHA, BLEND_ONE_MINUS_SRC_ALPHA);
-
- m_pRenderer->SetAmbient(255,255,255,255);
- m_pRenderer->SetTexture(m_pMenuBackground);
- m_pRenderer->DrawRectanglef(0.0f, 0.0f, 1.0f, 1.0f);
-
- m_pRenderer->SetAmbient(0,0,200,255);
-
- Tmp = pTrans->Translate("Programming/Graphics/Idea");
- lY = usCenterY-50;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Music");
- lY = usCenterY+10;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Fun Racing uses");
- lY = usCenterY+70;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("the TriNiTy Engine by Stefan Stattelmann");
- lY = usCenterY+90;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Done");
- lY = usCenterY+160;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18)
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 7.65f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX, lY-1, 18, Tmp);
-
- if(bMouseButton)
- {
- SaveConfig();
- m_GameState = MAINMENU;
- }
- }
- else
- {
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- m_pRenderer->SetAmbient(0,100,0,255);
-
- Tmp = "http://www.funracing.de.vu";
- lY = usCenterY-80;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = "Stefan Stattelmann";
- lY = usCenterY-30;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = "Martin Priess";
- lY = usCenterY+30;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- m_pRenderer->DisableBlending();
- }
-
- void FRApp::RenderInGameMenuServer(void)
- {
-
- UInt32 ulMouseX, ulMouseY;
- Int32 lX, lY;
- UInt16 usCenterX, usCenterY;
- TETranslator* pTrans = TETranslator::GetTranslator();
- TEString Tmp;
- Char acTmp[32];
- Char acArrowLeft[2] = {17,'\0'};
- Char acArrowRight[2] = {16,'\0'};
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- usCenterX = m_usScreenWidth / 2;
- usCenterY = m_usScreenHeight / 2;
-
- // m_pRenderer->EnableBlending();
- // m_pRenderer->SetBlendingState(BLEND_SRC_ALPHA, BLEND_ONE_MINUS_SRC_ALPHA);
-
- m_pRenderer->SetAmbient(0,0,0);
- m_pRenderer->SetTexture(NULL);
- m_pRenderer->DrawRectangle(usCenterX - 200, usCenterY - 95, usCenterX + 200, usCenterY + 130);
-
- m_pRenderer->SetAmbient(0,0,200,255);
-
- Tmp = GetGameTypeName(m_CurrGameType);;
- Tmp.MakeUpperCase();
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY - 75;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- lX = usCenterX-180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX <= usCenterX - 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowLeft);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowLeft);
-
- lX = usCenterX+180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX >= usCenterX + 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowRight);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowRight);
-
- Tmp = pTrans->Translate("Car:");
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY - 50;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = GetCarName(m_CurrCar);
- Tmp.MakeUpperCase();
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY - 30;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- lX = usCenterX-180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX <= usCenterX - 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowLeft);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowLeft);
-
- lX = usCenterX+180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX >= usCenterX + 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowRight);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowRight);
-
-
- Tmp = pTrans->Translate("Laps:");
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY - 5;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- sprintf(acTmp, "%d", m_ulNumLaps);
- Tmp = acTmp;
- lY = usCenterY + 15;
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- lX = usCenterX-180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX <= usCenterX - 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowLeft);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowLeft);
- lX = usCenterX+180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX >= usCenterX + 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowRight);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowRight);
-
-
- Tmp = pTrans->Translate("Track:");
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY + 40;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = ms_aacTrackNames[m_ulCurrTrack];
- Tmp.MakeUpperCase();
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY + 60;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- lX = usCenterX-180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX <= usCenterX - 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowLeft);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowLeft);
-
- lX = usCenterX+180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX >= usCenterX + 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowRight);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowRight);
-
-
- Tmp = pTrans->Translate("Quit");
- lY = usCenterY+100;
- lX = usCenterX - 60 - (UInt16) (Tmp.GetLength() * 15.3f);
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 &&
- (Int32) ulMouseX < usCenterX - 60)
- {
- lX -= (Int32) (Tmp.GetLength() * 0.17f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Restart");
- lX = usCenterX - (UInt16) (Tmp.GetLength() * 7.65f);
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 &&
- (Int32) ulMouseX < usCenterX + 60 && (Int32) ulMouseX > usCenterX - 60)
- {
- lX -= (Int32) (Tmp.GetLength() * 0.17f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Resume");
- lX = usCenterX+60;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 &&
- (Int32) ulMouseX > usCenterX + 60)
- {
- lX -= (Int32) (Tmp.GetLength() * 0.17f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- // m_pRenderer->DisableBlending();
- }
-
- void FRApp::RenderInGameMenuClient(void)
- {
- UInt32 ulMouseX, ulMouseY;
- Int32 lX, lY;
- UInt16 usCenterX, usCenterY;
- TETranslator* pTrans = TETranslator::GetTranslator();
- TEString Tmp;
- Char acArrowLeft[2] = {17,'\0'};
- Char acArrowRight[2] = {16,'\0'};
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- usCenterX = m_usScreenWidth / 2;
- usCenterY = m_usScreenHeight / 2;
-
- // m_pRenderer->EnableBlending();
- // m_pRenderer->SetBlendingState(BLEND_SRC_ALPHA, BLEND_ONE_MINUS_SRC_ALPHA);
-
- m_pRenderer->SetAmbient(0,0,0);
- m_pRenderer->SetTexture(NULL);
- m_pRenderer->DrawRectangle(usCenterX - 200, usCenterY - 40, usCenterX + 200, usCenterY + 90);
-
- m_pRenderer->SetAmbient(0,0,200,255);
-
- Tmp = pTrans->Translate("Car:");
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY - 30;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = GetCarName(m_CurrCar);
- Tmp.MakeUpperCase();
- lX = usCenterX - (Int32) (Tmp.GetLength() * 6.8f);
- lY = usCenterY;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- lX = usCenterX-180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX <= usCenterX - 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowLeft);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowLeft);
-
- lX = usCenterX+180;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 && (Int32) ulMouseX >= usCenterX + 165)
- {
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-1, lY-1, 18, acArrowRight);
- m_pRenderer->SetAmbient(0,0,200,255);
-
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, acArrowRight);
-
-
-
- Tmp = pTrans->Translate("Quit");
- lY = usCenterY+60;
- lX = usCenterX - 50 - (UInt16) (Tmp.GetLength() * 15.3f);
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 &&
- (Int32) ulMouseX < usCenterX - 50)
- {
- lX -= (Int32) (Tmp.GetLength() * 0.17f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Resume");
- lX = usCenterX+50;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 &&
- (Int32) ulMouseX > usCenterX + 50)
- {
- lX -= (Int32) (Tmp.GetLength() * 0.17f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- // m_pRenderer->DisableBlending();
- }
-
- void FRApp::RenderStatistic(void)
- {
- UInt32 ulMouseX, ulMouseY, ulCount, ulCount2;
- Int32 lX, lY;
- TETranslator* pTrans = TETranslator::GetTranslator();
- UInt16 usCenterX, usCenterY;
- TEString Tmp;
- Char acTmp[32];
- UChar ucPos[4];
-
- ucPos[0] = 0;
- ucPos[1] = 1;
- ucPos[2] = 2;
- ucPos[3] = 3;
-
- m_pInputDevices->GetCursorPos(ulMouseX, ulMouseY);
-
- usCenterX = m_usScreenWidth / 2;
- usCenterY = m_usScreenHeight / 2;
-
- m_pRenderer->EnableBlending();
- m_pRenderer->SetBlendingState(BLEND_SRC_ALPHA, BLEND_ONE_MINUS_SRC_ALPHA);
-
- m_pRenderer->SetAmbient(255,255,255,255);
- m_pRenderer->SetTexture(m_pMenuBackground);
- m_pRenderer->DrawRectanglef(0.0f, 0.0f, 1.0f, 1.0f);
-
- m_pRenderer->SetAmbient(0,100,0,255);
-
- lX = usCenterX - 180;
- for(ulCount = 0; ulCount < 4; ulCount++)
- {
- sprintf(acTmp, "%d. ", m_pCareer->aulDriverPlacement[ulCount]+1);
- Tmp = acTmp;
-
- if(ulCount == 3)
- Tmp = Tmp + m_PlayerName;
- else Tmp = Tmp + ms_aOpponents[m_pCareer->aulOpponents[ulCount]].m_Name;
-
- lY = usCenterY-62 + 18 * m_pCareer->aulDriverPlacement[ulCount];
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- for(ulCount2 = ulCount+1; ulCount2 < 4; ulCount2++)
- {
- if(m_pCareer->aulDriverScore[ucPos[ulCount]] < m_pCareer->aulDriverScore[ucPos[ulCount2]])
- {
- UChar ucBuf = ucPos[ulCount];
-
- ucPos[ulCount] = ucPos[ulCount2];
- ucPos[ulCount2] = ucBuf;
- }
- }
- }
-
- for(ulCount = 0; ulCount < 4; ulCount++)
- {
- sprintf(acTmp, "%d. ", ulCount+1);
- Tmp = acTmp;
-
- if(ucPos[ulCount] == 3)
- Tmp = Tmp + m_PlayerName;
- else Tmp = Tmp + ms_aOpponents[m_pCareer->aulOpponents[ucPos[ulCount]]].m_Name;
-
- lX = usCenterX - 180;
- lY = usCenterY+50 + 18 * ulCount;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- sprintf(acTmp, " %000d", m_pCareer->aulDriverScore[ucPos[ulCount]]);
- Tmp = pTrans->Translate("Score:");
- Tmp = Tmp + acTmp;
- lX = usCenterX + 80;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
- }
-
- m_pRenderer->SetAmbient(0,0,200,255);
-
- Tmp = ms_aRaces[m_pCareer->aulRaces[m_pCareer->ulCurrRace-1]].m_Title;
- Tmp = Tmp + "[" + GetGameTypeName(m_CurrGameType) + "]";
- lY = usCenterY-100;
- lX = usCenterX - (UInt16) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Results:");
- lY = usCenterY-82;
- lX = usCenterX - 180;
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Season Results after ");
- sprintf(acTmp, "%d ", m_pCareer->ulCurrRace);
- Tmp = Tmp + acTmp + pTrans->Translate("of 10 races");
- lY = usCenterY+30;
- lX = usCenterX - (UInt16) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- if(m_pCareer->ulCurrRace == 10)
- {
- m_pRenderer->SetAmbient(100,0,0,255);
- Tmp = pTrans->Translate("Season is over, press CONTINUE to start new one.");
- lY = usCenterY+120;
- lX = usCenterX - (UInt16) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
-
- if(m_pCareer->usDifficulty >= 2 && m_pCareer->aulDriverScore[3] >= 90)
- {
- Tmp = pTrans->Translate("The bonus car (Monster Hummer) is now available.");
- lY = usCenterY+140;
- lX = usCenterX - (UInt16) (Tmp.GetLength() * 6.8f);
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- m_bBonusCarAvailable = true;
- }
-
- m_pRenderer->SetAmbient(0,0,200,255);
- }
-
- Tmp = pTrans->Translate("Cancel");
- lY = usCenterY+160;
- lX = usCenterX - 10 - (UInt16) (Tmp.GetLength() * 15.3f);
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 &&
- (Int32) ulMouseX < usCenterX)
- {
- lX -= (Int32) (Tmp.GetLength() * 0.17f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- Tmp = pTrans->Translate("Continue");
- lX = usCenterX+10;
- if((Int32) ulMouseY >= lY && (Int32) ulMouseY <= lY + 18 &&
- (Int32) ulMouseX > usCenterX)
- {
- lX -= (Int32) (Tmp.GetLength() * 0.17f);
- m_pRenderer->SetAmbient(200,0,0,255);
- m_pRenderer->DrawText(lX-2, lY-1, 18, Tmp);
- m_pRenderer->SetAmbient(0,0,200,255);
- }
- else
- m_pRenderer->DrawText(lX, lY, 16, Tmp);
-
- m_pRenderer->DisableBlending();
- }
-
-